如何解决将数组序列化为C#中的单个XML元素
说我有C#代码
class Foo
{
[XmlElement("bar")]
public string[] bar;
}
var foo = new Foo
{
bar = new[] { "1","2","3" }
};
如何将Foo.bar
序列化为<bar>1,2,3</bar>
?
解决方法
您需要创建其他属性才能将数组序列化为单个元素
class Program
{
static void Main(string[] args)
{
var foo = new Foo
{
bar = new[] { "1","2","3" }
};
XmlSerializer serializer = new XmlSerializer(typeof(Foo));
serializer.Serialize(Console.Out,foo);
}
}
public class Foo
{
[XmlIgnore]
public string[] bar;
[XmlElement("bar")]
[EditorBrowsable(EditorBrowsableState.Never)]
public string BarValue
{
get
{
if(bar == null)
{
return null;
}
return string.Join(",",bar);
}
set
{
if(string.IsNullOrEmpty(value))
{
bar = Array.Empty<string>();
}
else
{
bar = value.Split(",");
}
}
}
}
输出:
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<bar>1,2,3</bar>
</Foo>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。