複数レコードのフラットファイルをxmlに変換しようとしています。レコードタイプごとに個別のクラスがあります。一部のクラスにはインスタンスが1つしかないため、「クラスノード」で区切る必要はありません。いくつかは複数回発生し、分離する必要があります。xmlシリアライザーを使用しているときにクラス名を無視/削除する方法が見つかりません。
public class Class1
{
public string StringA;
public string StringB;
public string StringC;
}
public class Class2
{
public string StringD;
public string StringE;
public string StringF;
}
public class Class3
{
public string Name;
public Class1 User1 = new Class1 { StringA = "A String", StringB = "B String", StringC = "C String" };
public Class2 User2 = new Class2 { StringD = "D String", StringE = "E String", StringF = "F String" };
}
シリアル化は次のとおりです。
XmlSerializer x = new XmlSerializer(typeof(Class3));
var test = new Class3();
test.Name = "Name";
x.Serialize(Console.Out, test);
私は次のようになります:
<Class3>
<Name>Name</Name>
<User1>
<StringA>A String</StringA>
<StringB>B String</StringB>
<StringC>C String</StringC>
</User1>
<User2>
<StringD>D String</StringD>
<StringE>E String</StringE>
<StringF>F String</StringF>
</User2>
とノードが消えて次のようになるようにします。
<Class3>
<Name>Name</Name>
<StringA>A String</StringA>
<StringB>B String</StringB>
<StringC>C String</StringC>
<StringD>D String</StringD>
<StringE>E String</StringE>
<StringF>F String</StringF>
</Class3>