Frage

Sind Erweiterungsmethoden zum CE-Rahmen als auch? Ich habe eine Erweiterungsmethode für Zeichenfolge, die in einem Windows Forms-Projekt funktioniert gut, aber es wird nicht in PocketPC-Anwendung erstellen.

ich dachte, dies wäre eine einfache Sache sein, um herauszufinden, aber ich war nicht in der Lage irgendwelche Informationen über Erweiterungsmethoden auf PocketPC zu finden.

Edit: Ooops das war mein Fehler. Ich schrieb die Erweiterungsmethode in Visual Studio 2008, aber das PocketPC-Projekt wurde in Visual Studio 2005 kompiliert werden, was ich nicht realisiert. Nun, das ist eine Stunde meines Lebens habe ich nie bin immer wieder. Vielen Dank alle für Antworten sowieso.

War es hilfreich?

Lösung

Will hier ein wenig Verwirrung klären. Erweiterungsmethoden sind ein Merkmal des Compilers, die nicht unbedingt eine bestimmte Version des Frameworks. Daher können die Erweiterungsmethoden auf jeder Plattform verwendet werden, wenn es eine Version des Compilers ist, dass beide Erweiterungsmethoden und diese Plattform unterstützt.

Der C # 3.0-Compiler kann nach unten Ziel 2.0 Frameworks und unterstützt Methoden Erweiterung so sollten sie auf dem kompakten Rahmen zur Verfügung stehen.

Das einzige, was der Rahmen für die Erweiterungsmethoden tatsächlich bietet, ist die Extension. Doch dies hat keine Funktionalität mit ihm verbunden und kann durch die Anwendung definiert werden, wenn es nicht verfügbar ist. Hier ist eine Blog-Post ich über das Thema geschrieben

Andere Tipps

Ja, sie sind in CF 3.5 unterstützt. Wenn Sie CF 2.0 verwenden müssen Sie die Extension definieren und dann werden sie arbeiten.

    // 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();
        }
    }
}

Sie sind im Compact Framework gemäß diese Blog-Post . Allerdings erwarte ich, dass sie Compact Framework Version 3.5 erforderlich. Welche Version verwenden Sie?

Welche Framework-Version sind Targeting Sie? Wenn Sie CF Targeting 2.0 von VS2008, müssen Sie Extension erklären ...

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

Sie können es mit dem .NET Compact Framework 2.0 und VS2008 durch einen kleinen Hack verwenden gemäß dieser Blog.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top