XElement реализует IXmlLineInfo через ряд базовых классов, поэтому я могу вызывать LineNumber для объекта, однако intellisense не видит этого свойства, и я вынужден передать объект в IXmlLineInfo.
IXmlLineInfo lineNumber = xelement;
var myLineNumber = lineNumber.LineNumber
Все это работает, но не должно появляться LineNumber на XElement?
Это потому, что XObject.IXmlLineInfo.LineNumber
объявлен как реализация явного интерфейса:
int IXmlLineInfo.LineNumber { get; }
Явная реализация члена интерфейса - это объявление метода, свойства, события или индексатора, которое ссылается на полное имя участника интерфейса.
.....
Явная реализация элемента интерфейса может быть доступна только через экземпляр интерфейса и в этом случае ссылается просто на его имя члена.