これはかなり奇妙です。整形式の XML である構成ファイルがあります。ファイルからストリームを作成し、非常に典型的なコードと思われるものを使用してシリアル化します。
TextWriter tw = new StreamWriter(tempFile);
次のように作成されたシリアライザーを使用します。
XmlSerializer ConfigSettingSerializer = new XmlSerializer(typeof(ConfigSettings));
ConfigSettings は、文字列変数と値を含む単なるコンテナー クラスです。
次に、シリアル化されたストリームを取得し、ConfigurationManager クラスと AppSettings を使用して構成として隠します。次に、シリアル化されたデータを appSettings から取得し、ストリームを元のクラスに変換しようとします。
string configXml = ConfigurationManager.AppSettings[Id];
using (StringReader reader = new StringReader(configXml))
{
retVal = (ConfigSettings)MVHelper.ConfigSettingSerializer.Deserialize(reader);
}
Debug から Release に切り替えるまで、これはすべて完全に機能します。無効な XML に関する Deserialize 呼び出しでエラーが発生し、ドキュメントの最後の文字について不平を言います: XML ドキュメントにエラーがあります (92, 18)。内部例外は、「ルート レベルのデータが無効です。92 行目、18 番目の位置」です。ドキュメントはデバッグ モードで生成されたものと同じで、どのブラウザでも適切に表示されます。私の推測では、何か他のことが起こっている可能性があり、実際のエラーは何らかの形で隠蔽されていると思われますが、これまでのところ、それはわかりません。アドバイスをいただければ幸いです。
ありがとう、
ゲイリー