c# - must - ¿Utiliza métodos de extensión en.NET 2.0?
extension method must be defined in a non-generic static class (1)
Al igual que:
// 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 )
{
/* ... */
}
}
Alternativamente; solo agrega una referencia a LINQBridge .
Quiero hacer esto, pero obtengo este error:
Error 1 No se puede definir un nuevo método de extensión porque el compilador requerido tipo ''System.Runtime.CompilerServices.ExtensionAttribute'' no se puede encontrar. ¿Echas de menos una referencia a System.Core.dll? [corté algunas cosas del camino]
He visto algunas respuestas aquí que dice: tienes que definir este atributo tú mismo.
¿Cómo puedo hacer eso?
EDITAR : Esto es lo que tengo:
[AttributeUsage ( AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method )]
public sealed class ExtensionAttribute : Attribute
{
public static int MeasureDisplayStringWidth ( this Graphics graphics, string text )
{
}
}