С учетом этого 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 to 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 type = e.Attributes (« xsi: type »);» не работает, потому что двоеточия не допускаются в имени.
Есть идеи, как я могу запросить атрибут xsi: type у каждого элемента?
Спасибо,
Rick