我在VB和.NET 3.5版中使用ASP.NET。在项目中,我有一些实用程序函数,我从aspx页面中的表达式以及后面的代码中调用。这一切都可以在我的本地机器上正常工作,但是当我部署到生产服务器时,我在每个实用程序方法上都会出现这个编译错误:
BC30456: 'XXX' is not a member of 'String'.
其中XXX是在System.String上定义的扩展方法。由于种种原因,我对此感到困惑:
这到底是怎么回事?我真的需要访问这些实用程序函数,因为它们非常有用。
答案 0 :(得分:0)
检查IIS中的.Net版本。
这可能设置为不支持扩展方法的版本。
答案 1 :(得分:0)
当我仔细观察一个例子时,有问题的函数是朋友(c#内部),页面看不到它们。所以也许我对公开的方法产生了幻觉。不过,这是需要注意的事情。
我想我并不完全理解ASP.NET中的编译系统,但是可能页面被编译成代码模块的单独程序集,因此如果你想让它工作,这些函数必须是公共的。