我正在尝试使用 XmlSerializer
动态生成 HTML 表格和一组这样的类:
[XmlInclude(typeof(Th))]
public class Td
{
[XmlElement("span")]
public string Designation { get; set; }
[XmlAttribute("colspan")]
public int ColSpan { get; set; }
[XmlAttribute("rowspan")]
public int RowSpan { get; set; }
public Td(string designation, int colspan)
{
Designation = designation;
ColSpan = colspan;
RowSpan = 1;
}
public Td()
{
}
}
这里的问题是 Designation
属性可以有一个标签作为值,如 <option...>
,所以当我序列化我的模型时,我得到 <option...>
而不是 <option...>
我可以使用 string.Replace
解决问题像这样的方法:Replace("<", "<").Replace(">", ">");
有没有一种不使用 string.Replace
就能获得预期结果的干净方法? ?
最佳答案
您可以创建另一个将 Designation
公开为 XmlNode
的属性:
[XmlIgnore]
public string Designation { get; set; }
[XmlElement("span")]
public XmlNode DesignationAsXml
{
get
{
XmlDocument doc = new XmlDocument();
doc.InnerXml = "<root>" + this.Designation + "</root>";
return doc.DocumentElement.FirstChild;
}
set
{
throw new NotSupportedException();
}
}
关于c# - XML序列化和生成HTML文档时的 "<"、 ">",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916321/