gpt4 book ai didi

c# - 如何在 C# 中将 XML 子元素添加到简单数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:24 25 4
gpt4 key购买 nike

我正在尝试将一个简单的数据类型序列化为 XML,但以一种特定的方式来满足现有的 API。 (假设所需的XML必须以这种方式形成)

这是所需的 XML:

<foo>
<value>derp</value>
</foo>

理想情况下,我希望在类中将其表示为

String foo;

我知道的仅有的两个选项是

  1. 简单的序列化,当然只是导致
    <foo>derp</foo>
  1. 创建一个 Foo 类,它创建所需的 XML,但强制用户键入
    myFoo.Value = "derp";

而不是更可取的

foo = "derp";

有没有办法在类中包含简单的字符串,但用 <value> 表示它?子元素?

最佳答案

使用这个实现:

[XmlRoot("foo")]
public class Foo
{
[XmlElement("value")]
public string Value { get; set; }

public static implicit operator Foo(string s)
{
return new Foo { Value = s };
}
}

用法:

private static void Main()
{
Foo foo = "abc";

var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, string.Empty);

var serialzier = new XmlSerializer(typeof(Foo));

using (var writer = new StringWriter())
{
serialzier.Serialize(writer, foo, ns);

Console.WriteLine(writer.ToString());
}
}

输出:

<?xml version="1.0" encoding="utf-16"?>
<foo>
<value>abc</value>
</foo>

关于c# - 如何在 C# 中将 XML 子元素添加到简单数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822615/

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