XElement通过一系列基类实现IXmlLineInfo,因此我可以在对象上调用LineNumber,但是intellisense没有看到此属性,我强迫将对象强制转换为IXmlLineInfo。
IXmlLineInfo lineNumber = xelement;
var myLineNumber = lineNumber.LineNumber
所有这些都有效,但LineNumber不应出现在XElement上吗?
答案 0 :(得分:2)
那是因为XObject.IXmlLineInfo.LineNumber
声明为explicit interface member implementation:
int IXmlLineInfo.LineNumber { get; }
显式接口成员实现是引用完全限定的接口成员名称的方法,属性,事件或索引器声明。
.....
显式接口成员实现只能通过接口实例访问,在这种情况下只能通过其成员名称引用。