2010-02-17 13 views
11

Me preguntaba si hay una forma de crear métodos de extensión con Visual Studio 2005 y el framework 2.0.¿Es posible crear métodos de extensión con Framework 2.0?

public static class StringExtensions 
{ 
    public static void SomeExtension(this String targetString) 
    { 

    } 
} 

Si no hay forma de hacerlo, ¿cuál sería el equivalente? ¿Simplemente crea métodos estáticos en algún tipo de clase de biblioteca?

+0

¿Está usando Visual Studio 2008 o 2005? –

+0

Estoy usando VS2005 – DevDemon

+2

y no tiene suerte. –

Respuesta

18

puede crear métodos de extensión usando .Net framework 2.0, si usa el compilador C# 3.0 y Visual Studio 2008 o superior.

El problema es que hay que añadir este código a su proyecto:

namespace System.Runtime.CompilerServices 
{ 
    public class ExtensionAttribute : Attribute { } 
} 

Básicamente tiene que volver a declarar la extensionAttribute en core.dll (Net 3.5 +), en su proyecto.

+0

Ok gracias, por lo que parece posible con VS2008 y 2.0, pero no con VS2005 y 2.0, ¡gracias! – DevDemon

3

No, esto no es posible en .Net 2.0 (sin usar el compilador C# 3.0). Usted sólo puede crear métodos estáticos que hacen exactamente lo mismo, sin embargo:

public static class StringExtensions 
{ 
    public static void SomeExtension(String targetString) 
    { 
     // Do things 
    } 
} 

// Example use: 
StringExtensions.SomeExtension(targetString); 

En los métodos de extensión realidad son sólo una forma abreviada de escribir lo anterior.

+0

** es ** posible ... –

+0

@Andreas ¿Qué pasa si usa el compilador C# 3.0? Eso es * definitivamente * hacer trampa. – Justin

+0

pero es posible ... por lo que su respuesta es incorrecta. Sería verdad si declara 'no es posible usar .net 2.0 compiler' –

Cuestiones relacionadas