Ada*_*amW 4 .net c# string iis-6 code-behind
我似乎遇到了一个奇怪的问题,即字符串引用没有加载更新的值.
简而言之,我已经替换了包含一堆页面标题的DLL文件(App_Code.dll)(想想HTML页面标题),但是当从其他DLL引用时,这些值没有被更新.
这是一个示例页面代码隐藏的代码片段:
this.Master.PageDescription = Constants.Titles.CardInfoPageDescription;
Run Code Online (Sandbox Code Playgroud)
Constants类被编译成App_Code.dll,我刚刚替换它.我还清除了缓存(在这种情况下是IIS 6),重新启动了计算机,并确保我的本地浏览器缓存为空.
但是,当我加载网页时,它没有加载Constants.Titles.CardInfoPageDescription的新值.这适用于所有网页.
我可以让它更新它以替换该页面的DLL的唯一方法,该页面根本没有改变...
知道为什么会这样吗?这个字符串引用是否实际上没有在运行时查找并内置到页面DLL中?
任何帮助是极大的赞赏!
谢谢,亚当
让我猜一下:你的常量暴露为public const字段.
无论何时使用a const,其值都会在构建时嵌入到已编译的代码中,而不是在运行时动态引用.因此,当您随后替换声明常量的DLL时,替换的DLL之外的所有代码将继续使用旧值,直到重新编译为止.
在一个更哲学的说明 - 为什么你的"常数"被更新?仅使用const该值将永远,永远,永远改变.如果它可以改变那么它不是一个常数.
更实际的说明 - 揭露公共领域通常不被视为良好做法.请改用属性.(这个规则的一个可能的例外可能是永远不会改变的真正的常量.)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |