Extension Methods non supportati nel .Net Micro Framework ? Ecco la soluzione !

Purtroppo, il .Net Micro Framework non mette a disposizione nativamente gli Extension Methods. Infatti, se proviamo a compilare il seguente frammento di codice, che aggiunge un generico metodo alla classe String …

public static class StringExtension
{
    public static void Method(this String s)
    {
        // eblaborazione
    }
}

… otterremo il seguente errore di compilazione :

Cannot define a new extension method because the compiler required type ‘System.Runtime.CompilerServices.ExtensionAttribute’ cannot be found. Are you missing a reference to System.Core.dll?

Ciò è dovuto all’assenza dell’ExtensionAttribute che permette appunto di implementare gli extension methods.

Per risolvere questo problema, basta definire la seguente classe all’interno del nostro progetto :

namespace System.Runtime.CompilerServices
{
    [AttributeUsage(AttributeTargets.Assembly |
                    AttributeTargets.Class |
                    AttributeTargets.Method)]
    public sealed class ExtensionAttribute : Attribute
    {
    }
}

Chissà se la versione 4.2, in procinto di uscire, chiuderà questa enorme quanto banalissima falla.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s