Я рисую пробел здесь для чего-то, что должно быть простым...
Я пытаюсь сделать что-то вроде:
<my:control runat="server" id="myid" Visible="<%= (is compilation debug mode?) %>" />
Я рисую пробел здесь для чего-то, что должно быть простым...
Я пытаюсь сделать что-то вроде:
<my:control runat="server" id="myid" Visible="<%= (is compilation debug mode?) %>" />
Это должно получить элемент <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 ;
Легко!
HttpContext.IsDebuggingEnabled
свойство:
using System.Web;
if (HttpContext.Current.IsDebuggingEnabled) { /* ... */ }
Из документации:
Возвращает значение, указывающее, находится ли текущий HTTP-запрос в режиме отладки [...]
true
если запрос находится в режиме отладки; в противном случаеfalse
.
<my:control runat="server" id="myid" Visible="<%= HttpContext.Current.IsDebuggingEnabled %>" />
См. http://msdn.microsoft.com/en-us/library/system.web.httpcontext.isdebuggingenabled%28v=vs.90%29.aspx
или http://www.west-wind.com/weblog/posts/2007/Jan/19/Detecting-ASPNET-Debug-mode с плодотворной обратной связью ниже.
В вашем коде вы можете использовать предпроцессорную директиву IF DEBUG для установки атрибута видимости:
http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx
Хорошая статья от Фила Хаака:
http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx#51205
Бьюсь об заклад, вы можете заставить его работать с
#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");