简而言之,我需要的是部分定制类项目
public class project : IXmlSerializable
{
[XmlAttribute]
public string name;
[XmlIgnore]
public string[] contents;
public XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
if (reader.HasAttributes)
{
contents=new string[reader.AttributeCount];
for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
string attr = reader.Name;
Regex reg = new Regex(@"content_\d+");
if (reg.IsMatch(attr))
{
contents[i] = reader.Value;
}
}
}
}
public void WriteXml(XmlWriter writer)
{
for (int i = 0; i < contents.Count(); i++)
{
writer.WriteAttributeString("content_" + i, contents[i]);
}
}
}
我希望名称正常序列化,但只定制数组的内容(我需要将其作为项目节点中的属性)。 实际发生的事情是,当我实现项目类时,名称保持为null无论我怎么能这样做?
答案 0 :(得分:0)
在ReadXml
方法中,您永远不会分配name
属性。只需添加
name= "someValue";