Есть ли обходной путь для сериализации некоторых графических объектов Microsoft с такими интерфейсами, как Domain? - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел сгенерировать тестовую программу для наших клиентов-клиентов, чтобы убедиться, что мы можем обрабатывать все данные, которые собирает наше новое графическое приложение Microsoft.Мой план состоял в том, чтобы сериализовать данные с использованием XmlSerializer serializer = new XmlSerializer(typeof(List<T>));

Это не удалось на первом объекте, который я пробовал, Microsoft.Graph.Domain (в данном случае с ошибкой Cannot serialize member Microsoft.Graph.Entity.AdditionalData of type ... because it is an interface.

Поиск наПереполнение стека нашло предложения по украшению проблемного свойства класса с помощью XmlIgnore, поэтому XmlSerializer его проигнорирует, другие рекомендовали реализовать новый IXmlSerializer. В одном посте предлагалось использовать сериализацию в XAML.данные, которые я могу импортировать в свои модульные тесты? Как разработчик, у меня нет прямого доступа к учетным записям клиентов.

У кого-нибудь есть другие предложения о том, как сериализовать объекты Microsoft Graph.

1 Ответ

0 голосов
/ 19 февраля 2019

Я заменил свой XmlSerializer на Json.

public void SerializeObjectsToJson<T>(List<T> serializableObjects)
{
        var jsonStr = JsonConvert.SerializeObject(serializableObjects);
} 

public List<T> DeSerializeObjectsFromXml<T>()
{
        TextReader textReader = new StreamReader(fqpathname, Encoding.UTF8);
        var jsonStr = textReader.ReadToEnd();
        data = JsonConvert.DeserializeObject<List<T>>(jsonStr);
}

Кажется, все это работает с доменом, пользователем, подписанным пользователем, организацией и т. Д.

...