Fehlerbehebung FileNotFoundException
mit XmlSerializer
Wenn Sie XmlSerializer
zum Serialisieren eines Typs verwenden, stoßen Sie möglicherweise auf ein FileNotFoundException
. Dies geschieht auch dann, wenn Sie keine expliziten benutzerdefinierten Serialisierer definiert haben.
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(MyType));</code>
Die Fehlermeldung weist darauf hin, dass der Serialisierer eine Assembly, die benutzerdefinierte Serialisierer für MyType
enthalten soll, nicht laden kann.
Die Grundursache:
Der XmlSerializer
sucht nach diesen Serialisierern in einer Assembly mit dem Namen [Containing Assembly of MyType].XmlSerializers
. Dies ist ein Standardverhalten und der Prozess läuft normalerweise ohne Probleme ab.
Beheben der Ausnahme:
In den meisten Fällen ist diese Ausnahme harmlos und kann getrost ignoriert werden. Die Serialisierung wird erfolgreich abgeschlossen. Um die Ausnahmemeldungen während des Debuggens zu unterdrücken, können Sie jedoch Ausnahmen der ersten Chance für System.IO.FileNotFoundException
:
Common Language Runtime Exceptions -> System.IO -> System.IO.FileNotFoundException
.Ein proaktiver Ansatz:
Für eine dauerhaftere Lösung sollten Sie die Verwendung des Tools XmlSerializerPreCompiler
von Chris Sells in Betracht ziehen. Dieses Tool generiert vorab benutzerdefinierte Serialisierer, wodurch die Suche nach XmlSerializer
zur Laufzeit überflüssig wird und das FileNotFoundException
ganz verhindert wird. Weitere Details finden Sie im Blogbeitrag „C# XmlSerializer FileNotFound-Ausnahme.“
Das obige ist der detaillierte Inhalt vonWarum löst XmlSerializer eine FileNotFoundException aus und wie kann ich dies verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!