При @ войти в свойство динамического объекта - PullRequest
0 голосов
/ 28 апреля 2019

Я анализирую документ XML

      <book id="bk102">
          <author>Ralls, Kim</author>
......
.....
.....
       </book>

для Json и от Json до динамического объекта, подобного этому.

   string jsonText = JsonConvert.SerializeXNode(xml);
        dynamic dyn = JsonConvert.DeserializeObject<ExpandoObject>(jsonText);
        var catalog = dyn.catalog;

Это работает, я могу получить дочерние элементы, такие как book.author

однако, когда я наблюдаю динамический объект в visual studio, я вижу, что атрибут «id» элементов XML был разобран в свойство с именем @id. Но я не могу получить к нему доступ с помощью book.id или book. @ Id. Кажется, ни один из них не существует.

Как осуществляется доступ к свойствам @id?

1 Ответ

0 голосов
/ 29 апреля 2019

В C # @ - это специальный символ .

Для доступа к свойствам, названным в начале @, вы можете использовать индексатор, например ::

var id = ((IDictionary<string, object>)book)["@id"];
...