Question

Des méthodes d'extension disponibles sur le cadre de la CE ainsi? J'ai une méthode d'extension pour chaîne qui fonctionne très bien dans un projet de formulaires de fenêtres, mais il construire coutume dans l'application PocketPC.

Je me suis dit que ce serait une chose facile à trouver, mais je ne pouvais pas trouver toute information concernant les méthodes d'extension sur PocketPC.

Modifier Ooops ce fut mon erreur. J'ai écrit la méthode d'extension dans Visual Studio 2008, mais le projet PocketPC a été compilé dans Visual Studio 2005, que je ne l'ai pas réalisé. Eh bien, c'est une heure de ma vie, je ne suis jamais revenir. Merci à tous pour les réponses de toute façon.

Était-ce utile?

La solution

Je voulais éclaircir un peu de confusion. Les méthodes d'extension sont une caractéristique du compilateur, pas nécessairement une version particulière du cadre. Par conséquent, les méthodes d'extension peuvent être utilisés sur une plate-forme où il existe une version du compilateur qui prend en charge les deux méthodes d'extension et cette plate-forme.

Le compilateur C # 3.0 peut descendre cible à 2.0 cadres et soutient les méthodes d'extension afin qu'ils devraient être disponibles sur le cadre compact.

La seule chose que le cadre fournit en fait des méthodes d'extension est le ExtensionAttribute. Cependant, cela n'a pas de fonctionnalité associée et peut être défini par votre application si elle est disponible. Voici un blog que j'ai écrit sur le sujet

Autres conseils

Oui, ils sont pris en charge dans le CF 3.5. Si vous utilisez CF 2.0, vous devrez définir le ExtensionAttribute puis ils vont travailler.

    // this is a definition of a 3.5 class for use in 2.0.  If we upgrade to target CF3.5, we will need to remove it...
    namespace System.Runtime.CompilerServices 
    { 
        public class ExtensionAttribute : Attribute { } 
    }

namespace TestExtension
{
    public static class Extensions
    {
        public static int TestMethod(this string value)
        {
            return value.ToString();
        }
    }
}

Ils sont pris en charge dans le Compact Framework selon ce blog . Cependant, je pense qu'ils nécessitent la version Compact Framework 3.5. Quelle version utilisez-vous?

Quelle version cadre vous ciblez? Si vous ciblez CF 2.0 de VS2008, vous devrez peut-être déclarer ExtensionAttribute ...

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

Vous pouvez l'utiliser avec le .NET Compact Framework 2.0 et VS2008 à travers une petite entaille selon ce blog.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top