1 .net c# xml xml-serialization
我正在尝试将简单数据类型序列化为XML,但是以特定方式来满足现有API.(假设必须以这种方式形成所需的XML)
这是所需的XML:
<foo>
<value>derp</value>
</foo>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望在课堂上代表这一点
String foo;
Run Code Online (Sandbox Code Playgroud)
我所知道的唯一两个选择是
<foo>derp</foo>
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 };
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0" encoding="utf-16"?>
<foo>
<value>abc</value>
</foo>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
140 次 |
最近记录: |