XAttribute
и XElement
оба происходят от XObject
.Можно ли написать метод для XAttribute И XElement?
Оба имеют собственность Value
.
До сих пор, это то, что я придумал, чтобы делать то, что я хочу:
string FooMyXObject(XObject bar){
if (bar.NodeType == NodeType.Element)
return (bar as XElement).Value;
else if (bar.NodeType == NodeType.XAttribute)
return (bar as XAttribute).Value;
else
throw new Exception("Generic Fail Message");
}
Это чувствует себя неуклюжим. Я надеюсь, что есть способ сделать это менее неуклюжим. Некоторый способ доступа к свойству Value
из XObject
, так как они оба имеют имена свойств строки Value
.
Возможно ли это, или я просто вынужден сделать это таким неуклюжим способом?
['XText'] (https://msdn.microsoft.com/en-us/library/system.xml.linq.xtext (v = vs.110) .aspx) и [' XComment'] (https : //msdn.microsoft.com/en-us/library/system.xml.linq.xcomment (v = vs.110) .aspx) также имеют свойство «Значение» без базового базового класса. На самом деле это немного раздражает. Это именно та ситуация, когда интерфейс «IHasValue» был бы уместным. – dbc