XmlSerializerを使用してmscorelib.dllの特定のタイプを逆シリアル化します
XmlSerializer ser = new XmlSerializer( typeof( [.Net type in System] ) );
return ([.Net type in System]) ser.Deserialize( new StringReader( xmlValue ) );
FileNotFoundException
これにより、アセンブリがロードされたときにキャッチがスローされます。
「ファイルまたはアセンブリ'mscorlib.XmlSerializers、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'またはその依存関係の1つを読み込めませんでした。システムは指定されたファイルを見つけることができません。」
FusionLog:
=== Pre-bind state information ===
LOG: User = ###
LOG: DisplayName = mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
(Fully-specified)
LOG: Appbase = file:///C:/localdir
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\localdir\bin\Debug\appname.vshost.exe.Config
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.EXE.
mscorlib.XmlSerializers.DLLがないことを知っている限り、DLL名は.Netがシリアライザーを探して自動生成したものだと思います。
シリアル化を最適化するためにコンパイルするときにmyApplication.XmlSerializers.DLLを作成するオプションがあるので、これはフレームワークによるチェックの一部であると思います。
問題は、これがアプリケーションのロードに遅延を引き起こしているように見えることです-この時点で数秒間ハングしているようです。
これを回避またはスピードアップする方法はありますか?