【发布时间】:2010-09-17 08:46:32
【问题描述】:
我遇到了一个问题,让我认为 3.0 框架中存在错误。当我尝试使用扩展方法时,出现以下错误:
Missing compiler required member
'System.Runtime.CompilerServices.ExtensionAttribute..ctor'
当使用这个简单的代码时:
public static class StringUtils {
static void TestExtension(this String targetString) {
}
}
消除此编译错误的唯一方法是添加以下代码:
namespace System.Runtime.CompilerServices {
public class ExtensionAttribute : Attribute { }
}
我已经有几个月没有使用扩展方法了,但我很确定我不必这样做。有没有其他人遇到过这个问题?
【问题讨论】:
-
我在项目属性中将目标框架设置为 3.5。
-
在这种情况下,我想知道您引用的程序集之一 also 是否声明了此属性(感谢从 .NET 2.0 升级到 C# 3.0),并且编译器是很难选择使用哪一个?您是否在仅使用 StringUtils 等的普通(干净)项目中遇到此问题?
-
(意思是:不是System.Core.dll,可能有内部构造函数)
-
如果您需要针对旧的框架版本,则会出现此错误。不知道几岁,但当我不得不针对 .Net Framework 2.0 时,我得到了它。上述解决方案有效。
标签: c# .net-3.5 extension-methods