提问人:monty 提问时间:10/31/2023 最后编辑:monty 更新时间:10/31/2023 访问量:50
在 C 语言中将字符串列表/数组转换为单个 XML 属性#
List/Array of strings to a single XML attribute in C#
问:
是否有任何XML属性可以将集合(如或普通数组)序列化为单个XML属性?System.XML.Serialization
List<string>
string[]
例如:
public class Test
{
[XmlAttribute(AttributeName = "name")]
public string Name { get; set; }
// ???
public List<string> Values { get; set; } = new List<string>();
}
用
Test test = new Test
{
Name = "foo",
Values = new List<string>() { "a", "b", "c" }
}
应序列化为 XML
<Test name="foo" values="a b c" />
我们经常有这个用例,因为 “HTML 也可以,例如类属性”
答:
1赞
MakePeaceGreatAgain
10/31/2023
#1
不是直接的,但为什么不创建用于序列化的计算属性呢?
public class Test
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlIgnore] public List<string> Values { get; set; } = new List<string>();
[XmlAttribute("values")]
public string SerValues
{
get => string.Join(" ", Values);
set => Values = value.Split().ToList();
}
}
当然,您应该提供一些检查。null
评论