Учитывая этот xml:
<?xml version="1.0" encoding="utf-8"?>
<EntityDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<components>
<component xsi:type="TypeA">
<Property1>100</Property1>
</component>
<component xsi:type="TypeB">
<Property2>100</Property2>
</component>
</components>
</EntityDefinition>
Я хотел бы циклично выполниться на компонентах и инстанцировать каждого основанного на объектах на атрибуте xsi:type.
Вот некоторый Linq к коду XML:
IEnumerable<XElement> components =
from c in elementsFromFile.Descendants("component")
select (XElement)c;
foreach (XElement e in components)
{
var type = e.Attributes("xsi:type");
}
К сожалению, строка “тип var = e. Атрибуты ("xsi:type")”; не работает, потому что двоеточия не позволяются на имя.
Какая-либо идея о том, как я могу запросить атрибут xsi:type от каждого элемента?
Спасибо,
Rick
XNEASPACE NS = " http://www.w3.org/2001/xmlschema-instance ";
...
VAR тип = E .Attributes (NS + «тип»);