我想这样做,但得到这个错误:
错误1无法定义新的扩展方法,因为无法找到编译器所需的类型"System.Runtime.CompilerServices.ExtensionAttribute".您是否缺少对System.Core.dll的引用?[剪了一些路径]
我在这里看到一些答案说,你必须自己定义这个属性.
我怎么做?
编辑:这就是我所拥有的:
[AttributeUsage ( AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method )] public sealed class ExtensionAttribute : Attribute { public static int MeasureDisplayStringWidth ( this Graphics graphics, string text ) { } }
Marc Gravell.. 59
像这样:
// you need this once (only), and it must be in this namespace namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] public sealed class ExtensionAttribute : Attribute {} } // you can have as many of these as you like, in any namespaces public static class MyExtensionMethods { public static int MeasureDisplayStringWidth ( this Graphics graphics, string text ) { /* ... */ } }
另外; 只需添加对LINQBridge的引用.
像这样:
// you need this once (only), and it must be in this namespace namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] public sealed class ExtensionAttribute : Attribute {} } // you can have as many of these as you like, in any namespaces public static class MyExtensionMethods { public static int MeasureDisplayStringWidth ( this Graphics graphics, string text ) { /* ... */ } }
另外; 只需添加对LINQBridge的引用.