XML シリアル化アセンブリを自動的に生成します
質問:
XmlSerializer を使用すると、シリアル化アセンブリが欠落しているために例外が発生しました。 Visual Studio の設定「シリアル化されたアセンブリの生成」ではこの問題が解決されないのはなぜですか?また、どうすれば解決できますか?
答え:
「シリアル化アセンブリの生成」設定だけでは十分ではありません。SGen タスクは「/proxytypes」スイッチを sgen.exe コマンド ラインに追加し、プロキシ タイプなしでシリアル化アセンブリが生成されないようにします。
この問題を解決するために、Microsoft は「/proxytypes」スイッチを無効にできる「SGenUseProxyTypes」MSBuild プロパティを導入しました。使用方法は次のとおりです:
ステップ 1: プロキシ タイプの生成を無効にする
Microsoft.Common.Targets または C#/VB.targets をインポートする前に、次のプロパティをプロジェクト ファイルに追加します。
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
ステップ 2: シリアル化アセンブリの生成を有効にする
プロジェクトのプロパティで [シリアル化されたアセンブリの生成] 設定が有効になっていることを確認します。
変更されたプロジェクト ファイル構成:
<code class="language-xml"><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup></code>
これらの変更を加えた後、Visual Studio は手動介入なしで Xml シリアル化アセンブリを自動的に生成します。
以上が「シリアル化アセンブリの生成」が常に XmlSerializer で機能しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。