在asp.net 2.0 web应用程序中使用.net 3.5程序集
我有一个针对3.5框架的.net程序集版本。此组件具有类Foo有两个方法覆盖:在asp.net 2.0 web应用程序中使用.net 3.5程序集
public class Foo {
public T Set<T>(T value);
public T Set<T>(Func<T> getValueFunc);
}
我引用该组件在我的asp.net 2.0 Web应用程序使用Set方法的第一个覆盖(不Func键)。
但在建设,我得到一个错误,说我应该引用System.Core程序使用System.Func代表......但我不使用这种类型的...
有没有解决这个问题解决方法?
PS: 没有选择将我的Web应用程序转换为3.5框架。
将您的网页应用转换为使用.NET 3.5(或4.0)。之后,一切都会好起来的。
如果你必须坚持到.NET 2.0,这里有我的想法
- 尝试通过浏览到DLL和手动添加它来引用System.Core程序集。 .NET Framework 3.5使用与2.0相同的CLR,因此如果它没有引用引用,它应该可以工作。 (例如,你不能添加的.NET 3.5的东西)
通过引用System.Core来解决此问题(http://abdullin.com/journal/2008/12/23 /how-to-use-net-35-features-and-c-30-syntax-in-net-20.html)。无法通过浏览到我的系统上的程序集来添加参考... – 2010-05-21 12:51:08
@masterik - 我很高兴你能解决它。 – Venemo 2010-05-21 13:05:55
您必须将您的网络应用程序升级到.net 3.5才能使其工作或重新编译从soce targetting .net 2.0开始的程序集(如果有的话)。
仅仅因为你没有在代码中调用特定的重载并不意味着编译器可以忽略它,如果它存在于你的类中正在使用,那么编译器需要知道它是什么。您需要参考System.Core或将您的项目转换为使用.net 3.5
您是否有权访问引用程序集的源代码? – 2010-05-21 11:30:39
是的,我喜欢。但它是一个大型的库,在内部大量使用3.5,所以重新编译为2.0也不是选项... – 2010-05-21 12:03:33