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 中国語 Web サイトの他の関連記事を参照してください。