/ / Führen Sie sgen auf einer 5-MB-Assembly mit vielen Klassen mit demselben Namen aus - c #, xmlserializer, sgen

Führen Sie sgen auf einer 5-MB-Assembly mit vielen Klassen mit demselben Namen aus - c #, xmlserializer, sgen

Ich versuche die XmlSerializer zu generierenAssembly für ein Projekt, das eine 5MB-DLL ausgibt. Dieses Projekt hat viele Klassen mit unterschiedlichen .Net-Namespaces, aber mit demselben Namen. Daher gibt sgen die Fehlermeldung "Das oberste XML-Element" XXXX "aus Namespace" "auf verschiedene Typen XXXX und XXXX zurück.

Daher füge ich die TypeName-Eigenschaft zum XmlTypeAttribute jeder sich wiederholenden Klasse hinzu. Das Problem ist, dass jedes Mal, wenn ich den SGEN-Befehl ausführt, es mindestens 15 Minuten dauert, bis ein Feedback angezeigt wird.

Hast du irgendwelche Vorschläge?

Vielen Dank.

Antworten:

1 für die Antwort № 1

sgen ist ein Single-Threaded-Tool, das in zwei Phasen ausgeführt wird: Zunächst wird der Quellcode für die Serialisierungsassembly generiert, und in der zweiten Phase wird die generierte Assembly kompiliert.

Wahrscheinlich können Sie eine Leistungssteigerung erzielen, wennSie trennen und kompilieren Ihre Klassen in mehrere Assemblys (entsprechend der Anzahl der CPU-Kerne), führen sgen für jede Assembly parallel aus und führen die resultierenden DLLs mit ILMerge zu einem XML-Serializer zusammen.