XMLファイルをシリアル化しようとすると終了タグを追加しようとしていますが、正しく機能していません。ここで私はここでC#でXMLシリアル化を使用するときにリストに終了タグを追加する方法は?
private List<RTACModuleDeviceConnectionSettingPagesSettingPageRowSetting> rowField;
/// <remarks/>
//[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlArrayItem("Setting", typeof(RTACModuleDeviceConnectionSettingPagesSettingPageRowSetting), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
public List<RTACModuleDeviceConnectionSettingPagesSettingPageRowSetting> Row
{
get
{
return this.rowField;
}
set
{
this.rowField = value;
}
}
を使用していたクラスは、XMLを書くためのコードがあるさ:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.Encoding = new UTF8Encoding(false);
settings.Indent = true;
settings.NamespaceHandling = NamespaceHandling.OmitDuplicates;
//settings.CloseOutput = true;
//settings.NewLineOnAttributes = true;
XmlSerializer xs = new XmlSerializer(deserializedDevice.GetType());
MemoryStream ms = new MemoryStream();
XmlWriter writer = XmlWriter.Create(ms, settings);
serializer.Serialize(writer, deserializedDevice, ns);
string text = Encoding.UTF8.GetString(ms.ToArray());
File.WriteAllText(path, Encoding.UTF8.GetString(ms.ToArray()));
私はこれが書き出されますことを期待しています:
<Row>
<Setting enabled="false">
<Column>Setting</Column>
<Value>Network Connection Type</Value>
</Setting>
<Setting>
<Column>Value</Column>
<Value>Telnet</Value>
</Setting>
<Setting>
<Column>Comment</Column>
<Value />
</Setting>
</Row>
<Row>
<Setting enabled="false">
<Column>Setting</Column>
<Value>Local Port Number</Value>
</Setting>
<Setting>
<Column>Value</Column>
<Value>5206</Value>
</Setting>
<Setting>
<Column>Comment</Column>
<Value />
</Setting>
</Row>
は、代わりに私が行方不明です行の複数の終了タグ:
<Row>
<Setting
enabled="false">
<Column>Setting</Column>
<Value>Network Connection Type</Value>
</Setting>
<Setting>
<Column>Value</Column>
<Value>Telnet</Value>
</Setting>
<Setting>
<Column>Comment</Column>
<Value />
</Setting>
<Setting
enabled="false">
<Column>Setting</Column>
<Value>Local Port Number</Value>
</Setting>
<Setting>
<Column>Value</Column>
<Value>5315</Value>
</Setting>
<Setting>
<Column>Comment</Column>
<Value />
</Setting>
</Row>
どのようなデータが使用されていて、どのようにメモリに構築されていますか?多くの場合、配列の1つの要素(行)と配列の要素(設定)の6つをシリアル化する多くの場合、1つの配列を6つの要素で直列化しているように見えます。 –
私はxmlファイル(xmlReader)を変更せずに読み込み、シリアル化してxmlに書き戻そうとしています。行リストには3つの要素(設定)があり、新しい行タグを開始する必要があります。 – techmakin