Alternativen zu Reflection.Emit für das Compact Framework

8

Es scheint, dass .NET CF den sehr nützlichen Reflection.Emit fehlt. Bisher habe ich diese Bibliothek als Alternative gefunden: Ссылка .

Allerdings scheint es eine verlassene frühe Version zu sein, also suche ich nach mehr Möglichkeiten.

Kennt jemand eine andere Alternative zu Emit? Oder hat jemand EmitCF benutzt und kann seinen Status kommentieren?

Übrigens, das größere Bild: Ich versuche, Emit für die CF zu bekommen, damit ich Ссылка unter die Arbeit bekommen kann CF, damit ich den Serialisierungscode optimieren kann, den ich verwende ( Ссылка )

    
Hermit 05.09.2009, 15:08
quelle

2 Antworten

5

Was Sie brauchen, ist Cecil ( Ссылка ), eine Mono-Projektbibliothek zum Generieren und Inspizieren von Programmen und Bibliotheken im CIL-Format. Es ist aktiv gepflegt, tut viel mehr als Reflection.Emit und es wird in vielen Projekten verwendet, darunter einige, die auf .NET CF abzielen.

    
Andreia Gaita 09.09.2009 00:03
quelle
1

Dies ist nicht genau eine Antwort auf Ihre Frage, aber da Reflection.Emit in CF nicht unterstützt wird, könnte ein alternativer Ansatz zur Serialisierung / Deserialisierung darin bestehen, Ihre Klassen in einer normalen Windows-Anwendung zu kompilieren und zu erstellen Verwendung von Reflection.Emit, um programmatisch für jede Klasse Serialisierungs- und Deserialisierungsmethoden zu generieren, die dann in der CF-Version wieder in die Klasse integriert werden können. Grundsätzlich würden Sie Reflection.Emit im gesamten Framework für die Codegenerierung verwenden.

Dies wäre mehr Arbeit (und natürlich eine konstante Quelle für mehr Arbeit), aber es würde besser funktionieren als ein dynamischer, Reflection.Emit-basierter Ansatz (der sowieso nicht in CF funktioniert). Die meisten CF-Klassen funktionieren unverändert im vollen Rahmen, natürlich nicht unbedingt.

    
MusiGenesis 09.09.2009 14:27
quelle