【发布时间】:2015-03-19 21:02:03
【问题描述】:
我正在做一些 XML 序列化并尝试像这样获得输出:
<Claim>
<Source>...</Source>
<Vehicle>...</Vehicle>
<ThirdParty>...</ThirdParty>
<ThirdParty>...</ThirdParty>
<ThirdParty>...</ThirdParty>
</Claim>
但是我的输出是:
<Claim>
<Source>...</Source>
<Vehicle>...</Vehicle>
<ThirdParty>
<ThirdParty>...</ThirdParty>
<ThirdParty>...</ThirdParty>
<ThirdParty>...</ThirdParty>
</ThirdParty>
</Claim>
第三方嵌套在列表中而不是声明中,我怎样才能在 XML 的基础上而不是在另一个第三方节点中获取第三方。我希望这是有道理的。
我正在尝试序列化的对象:
public class ThirdParty
{
public ThirdPartyDetails Details { get; set; }
public ThirdPartyVehicle Vehicle { get; set; }
public ThirdPartyPolicy Policy { get; set; }
public ThirdPartyPrincipleCompany PrincipleCompany { get; set; }
}
public class Claim
{
public List<ThirdParty> ThirdParty { get; set; }
}
初始化
ThirdParty ThirdParty1 = new ThirdParty{ Details = ThirdPartyDetails, Policy=ThirdPartyPolicy, PrincipleCompany=ThirdPartyPrinciple, Vehicle=ThirdPartyVehicle};
ThirdParty ThirdParty2 = new ThirdParty{ Details = ThirdPartyDetails, Policy=ThirdPartyPolicy, PrincipleCompany=ThirdPartyPrinciple, Vehicle=ThirdPartyVehicle};
List<ThirdParty> LP = new List<ThirdParty>();
LP.Add(ThirdParty1);
LP.Add(ThirdParty2);
Claim Claim = new Claim { ThirdParty = LP };
序列化
var subReq = Claim;
using (StringWriter sww = new Utf8StringWriter())
{
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings
{
Indent = true,
OmitXmlDeclaration = false,
Encoding = Encoding.Unicode
};
using (XmlWriter writer = XmlWriter.Create(sww, xmlWriterSettings))
{
xsSubmit.Serialize(writer, subReq);
var xml = sww.ToString();
PrintOutput(xml);
Console.WriteLine(xml);
}
}
编辑: 回应彼得:
好的,现在我的输出有问题,我没有使用它 我认为正确。所以因为我继承了 List 然后我可以使用 List 的 Add 方法: 索赔。添加(第三方 1);声明。添加(第三方 2);现在我的输出是 ... ……完全 忽略的来源和车辆。有什么想法吗?
【问题讨论】:
标签: c# xmlserializer