有没有办法创建一个派生自XElement
的类,还能控制可以添加到它的对象类型?
例如,说我有这个......
public class HtmlHead : XElement {}
但我无法覆盖Add()
方法,因为它在XContainer
级别下降。即使我要创建一个派生自XContainer
的类,我仍然无法覆盖Add()
方法。
你问我为什么要这样做?
我想确保如果我的程序编译它也正确解析HTML。例如,您只能将某些元素添加到HTML <head>
代码中,因此我想确保只能添加支持的代码。
当然,您不会在<anchor>
标记中添加<head>
标记,感觉到我?
答案 0 :(得分:2)
您可以通过构造函数控制传递的名称。
public class HtmlHead : XElement
{
public HtmlHead(object content) : base("head")
{
this.Add(content);
}
public HtmlHead(params object[] content) : base("head", content) { }
}
添加项目时,会执行更改通知,或者您可以创建自定义方法来添加每个人应该使用的项目。