设想:
我的客户端计算机上有针对 3.5 的 VS 2010(C# 4 编译器)。
我正在开发 ASP.NET 应用程序。我在类文件中使用可选参数(支持 C# 4)并编译代码,一切似乎都工作正常。
后来在运行时发现了一个问题,其中一个旧的(我相信是经典的)ASPX正在使用该函数。没有函数只接受 x 个参数,其中 x 比可选参数小 1 是运行时错误。
这是否意味着普通类等使用客户端的 C# 编译器,而视图 (aspx) 等使用服务器上的编译器 - 因此如果在视图/表单文件中使用 C# 4 会导致问题?
我相信这与 aspx 页面在 IIS 首次加载时(重新?)编译而不是在 Visual Studio 中编译有关。这使得它们可以即时更新而无需重新编译,但是由于它们是由 IIS 编译的,因此会带来您所看到的复杂性。
我不知道如何让 IIS 使用 C#4 编译器但编译到 .NET 3.5,所以看来您唯一的选择是:
- 更新到.NET 4
- 不要使用可选参数
- 不要在 .aspx 文件中调用使用可选参数的代码。我猜如果您将调用移至代码隐藏文件,它应该可以正常工作,但我还没有尝试过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)