В приложении UWP я выбираю контакт, используя
var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
Contact contact = await contactPicker.PickContactAsync();
Затем я сериализую возвращенный объект контакта, используя Json.NET , как показано ниже:
string c = JsonConvert.SerializeObject(contact);
Но проблема в том, что свойства в объекте контакта, которые (должны быть) типа IList
, такие как телефоны, электронные письма, адреса и т. Д., Являютсянеправильно сериализовано. Они являются пустыми массивами JSON.
После проверки я выяснил, что проблема заключается в том, что эти свойства не возвращают объекты классов, реализующих интерфейс IList
, как предполагалось! Вместо этого они возвращают объекты типа System._ComObject
. Поэтому при вызове contact.Phones.GetType().FullName
я получаю: System._ComObject
.
И то же самое также с contact.Emails
, contact.Addresses
... и т. Д.
Любая помощь, чтобы получить свойства правильнои, следовательно, правильно сериализовать контактный объект?