gpt4 book ai didi

c# - 如何在 C# 中自定义 List 的序列化

转载 作者:行者123 更新时间:2023-11-30 18:08:23 30 4
gpt4 key购买 nike

这简直要了我的命。我读过这些:

http://msdn.microsoft.com/en-us/library/athddy89(v=VS.80).aspx

http://msdn.microsoft.com/en-us/library/2baksw0z(v=VS.80).aspx

但我不知道如何将它们应用到我正在尝试做的事情中。我想自定义以下列表序列化的方式...

[Serializable]
public class FinalConcentrations : List<string> { }

所以当我将它作为“objectToSerialze”传递给这个...

    public void serializeObject(object objectToSerialize, Stream outputStream)
{
// removes the default added namespaces
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");

XmlSerializer serial = new XmlSerializer(objectToSerialize.GetType());
MemoryStream ms = new MemoryStream();
serial.Serialize(ms, objectToSerialize, ns);

StreamReader reader = new StreamReader(ms);
ms.Position = 0;

ms.WriteTo(outputStream);
}

...它将此写入输出流:

<FinalConcentrations>
<FinalConcentration>string value 1</FinalConcentration>
<FinalConcentration>string value 2</FinalConcentration>
<FinalConcentration>string value 3</FinalConcentration>
</FinalConcentration>

...而不是这个

<FinalConcentrations>
<string>string value 1</string>
<string>string value 2</string>
<string>string value 3</string>
</FinalConcentration>

我的 serializeObject 方法用于序列化各种各样的对象,因此我正在寻找一种在我的 FinalConcentrations 定义中而不是在该方法中执行此操作的方法。

请帮忙。

最佳答案

解决这个问题的最简单方法是传入包装器对象而不是列表本身,即

public class FinalConcentrations {
private readonly List<string> items = new List<string>();
[XmlElement("FinalConcentration")]
public List<string> Items {get {return items;}}
}

那个呢?

关于c# - 如何在 C# 中自定义 List<string> 的序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273536/

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