Каковы минимальные требования, чтобы сказать, что пользовательское исключение является сериализуемым? - PullRequest
5 голосов
/ 09 декабря 2010

У меня есть куча пользовательских исключений в устаревшем коде моего решения.И я хочу, чтобы протестировал все

пользовательские исключения , представленные в моих проектах , чтобы увидеть, являются ли они сериализуемыми (XML)

Итак, что должны проверять мои тесты, когда настраиваемое исключение сериализуемо?

Каковы минимальные требования, чтобы сказать, что настраиваемое исключение сериализуемо?

Ответы [ 4 ]

2 голосов
/ 09 декабря 2010

Можно проверить, все ли классы исключений реализуют интерфейс IXmlSerializable :

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);
1 голос
/ 09 декабря 2010

Я бы предложил использовать метод xmlSerializer.CanDeserialize (..).

* MSDN 1004 *

1 голос
/ 09 декабря 2010

Базовый класс Exception предоставляет открытое свойство Data, которое реализует IDictionary, который не поддерживается механизмом сериализации .NET XML по умолчанию.

Поэтому я считаю, что для вас XMLСериализовав исключение, вы будете вынуждены реализовать IXmlSerializable для обеспечения собственной логики сериализации XML.

На основании этого вы можете проверить, что ваши классы реализуют этот конкретный интерфейс, как продемонстрировал Фредерик в своем ответе.

0 голосов
/ 09 декабря 2010
typeof(MyException).IsSerializeable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...