gpt4 book ai didi

c# - 尝试序列化包含其他 Datacontracts C# 列表的 Datacontract

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:21 27 4
gpt4 key购买 nike

问题是我没有得到我想要的 XML 结构。我的代码如下:

[DataContract]
public class Persons
{
[DataMember]
public List<Person> Personas;
}

[DataContract]
public class Person
{
[DataMember(Name="SSN")]
public long SSN
{
get;
set;
}
[DataMember(Name="Name")]
public string Name
{
get;
set;
}

当我运行 DataContractSerializer 时,它返回的 XML 是:

<Persons xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WCFTest">
<Personas>
<Person>
<Name>B</Name>
<SSN>1234</SSN>
</Person>
<Person>
<Name>I</Name>
<SSN>5678</SSN>
</Person>
</Personas>
</Persons>

我想删除元素 Persons 或 Personas,根元素应该包含一个 Person 列表。

最佳答案

如果您希望根元素是一个 Person 列表,只需序列化 List 而不是序列化 Personas。

DataContractSerializer ser =
new DataContractSerializer(typeof(List<Person>))
ser.WriteObject(writer, persons.Personas)

代替

DataContractSerializer ser =
new DataContractSerializer(typeof(Persons))
ser.WriteObject(writer, persons)

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

关于c# - 尝试序列化包含其他 Datacontracts C# 列表的 Datacontract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com