使用 FileNotFoundException
XmlSerializer
排除
使用 XmlSerializer
序列化類型時,您可能會遇到 FileNotFoundException
。 即使您沒有明確定義自訂序列化程序,也會發生這種情況。
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(MyType));</code>
錯誤訊息指示序列化程式無法載入預期包含 MyType
的自訂序列化程式的組件。
根本原因:
XmlSerializer
在名為 [Containing Assembly of MyType].XmlSerializers
的程式集中搜尋這些序列化器。 這是標準行為,該過程通常會繼續下去,不會出現任何問題。
解決異常:
在大多數情況下,此異常是無害的,可以安全地忽略。 序列化將成功完成。但是,要在偵錯期間抑制異常訊息,您可以停用 System.IO.FileNotFoundException
:
Common Language Runtime Exceptions -> System.IO -> System.IO.FileNotFoundException
。 積極主動的方法:
要獲得更永久的解決方案,請考慮使用 Chris Sells 的 XmlSerializerPreCompiler
工具。該工具預先產生自訂序列化器,從而無需在運行時搜尋 XmlSerializer
並完全阻止 FileNotFoundException
。 更多詳細資訊可以在部落格文章「C# XmlSerializer FileNotFound 異常」中找到。
以上是為什麼 XmlSerializer 會引發 FileNotFoundException,以及如何防止它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!