XmlSerializer を使用して値を xml 値に書き込もうとしていますが、以下はコードです。このコードは、ドロップダウン リストの選択変更時に呼び出されます。したがって、最初は問題なく動作しますが、2 回目の選択変更イベントでは、以下に示す xml のようなガベージ値が挿入されます。
protected void UpdateDefaultReasonConfig(object sender, EventArgs e)
{
string configFile = ConfigurationSettings.AppSettings["DefaultOutageReasonConfig"];
DefaultOutageReason defaultOutageReason = new DefaultOutageReason();
defaultOutageReason.OutageReason = this._defaultOutageReason.Text;
XmlSerializer writer = new XmlSerializer(typeof(DefaultOutageReason));
using (FileStream write = File.OpenWrite(configFile))
{
writer.Serialize(write, defaultOutageReason);
}
}
結果のxmlは次のとおりです。
<?xml version="1.0"?>
<DefaultOutageReason xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OutageReason>Storm Damage</OutageReason>
</DefaultOutageReason>eason>
ルートの終了タグにこの余分な値を追加する理由を教えてください。