C# 是否可以使用ASP.Net web配置应用程序设置值作为编译常量?

C# 是否可以使用ASP.Net web配置应用程序设置值作为编译常量?,c#,asp.net,web-config,C#,Asp.net,Web Config,我有一些web配置应用程序设置,比如页面URL,这些设置会根据开发环境和生产环境而变化 我希望应用程序设置能够在编译时以某种方式嵌入到一些aspx文件中,而不必通过代码调用应用程序设置来确保它们使用的是正确的页面URL 可以这样做吗?是的,您可以使用编译器选项将您的标志定义为: <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" compiler

我有一些web配置应用程序设置,比如页面URL,这些设置会根据开发环境和生产环境而变化

我希望应用程序设置能够在编译时以某种方式嵌入到一些aspx文件中,而不必通过代码调用应用程序设置来确保它们使用的是正确的页面URL


可以这样做吗?

是的,您可以使用编译器选项将您的标志定义为:

<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs"   
   compilerOptions="/D:FirstDefine,SecondDefine" 
            type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
    <providerOption name="CompilerVersion" value="v4.0" />
    <providerOption name="WarnAsError" value="false" />
  </compiler>
</compilers>
</system.codedom>
MSDN参考


@user2864740是的,这是一个非常好的解决方案,我使用了多年。也很快,因为它在编译时应用,并且在运行时不会再次检查变量。如果您更改了web.config,您会让它重新编译,然后再次更改代码。对于生产环境和system.codedom部分,哪种配置是实现高性能的最佳配置?
#if FirstDefine
     // ... your code 
#endif