Подтвердить что ты не робот

Как определить, если компиляция debug = "true" в web.config

Я рисую пробел здесь для чего-то, что должно быть простым...

Я пытаюсь сделать что-то вроде:

    <my:control runat="server" id="myid" Visible="<%= (is compilation debug mode?) %>" />
4b9b3361

Ответ 1

Это должно получить элемент <compilation> в группе разделов <system.web>:

using System.Web.Configuration ;

. . .

CompilationSection compilationSection = (CompilationSection)System.Configuration.ConfigurationManager.GetSection(@"system.web/compilation") ;

. . .

// check the DEBUG attribute on the <compilation> element
bool isDebugEnabled = compilationSection.Debug ;

Легко!

Ответ 2

HttpContext.IsDebuggingEnabled свойство:

using System.Web;

if (HttpContext.Current.IsDebuggingEnabled) { /* ... */ }

Из документации:

Возвращает значение, указывающее, находится ли текущий HTTP-запрос в режиме отладки [...] true если запрос находится в режиме отладки; в противном случае false.

Ответ 5

Бьюсь об заклад, вы можете заставить его работать с

#if DEBUG
#endif 

бит кода на вашей странице ASPX, а не код (что отдельный компилятор).

Что-то вроде:

<script runat="server" language="C#">
  protected Page_Load() {
#if DEBUG
     myid.Visible = true;
#else
     myid.Visible = false;
#endif
  }
</script>

В качестве альтернативы, вы могли бы ConfigurationManager или XElement и фактически проанализировать файл web.config из кода и найти атрибут.

Например:

var xml = XElement.Load("path-to-web.config");
bool isDebug = (bool)xml.Descendants("compilation").Attribute("debug");