Как запросить xsi:type от использования атрибута Linq к XML?

Учитывая этот 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

8
задан RickB 28 January 2010 в 17:31
поделиться