Должны ли объекты, добавленные в коллекцию SqlException.Data, быть [Serializable]? - PullRequest
0 голосов
/ 02 октября 2008

Должны ли объекты, добавленные в коллекцию SqlException.Data, быть [Serializable]?

Ответы [ 3 ]

1 голос
/ 16 октября 2008

Да, они должны быть. Это потому, что реализация ISerializable в типе Exception добавляет свойство Data в StreamingContext. И все объекты в свойстве Data (которое является IDictionary) должны быть сериализуемыми. Использование классов исключений и экземпляров сериализуемой является хорошей практикой, даже если вы не собираетесь создавать распределенное приложение.

0 голосов
/ 13 октября 2008

Если исключение будет распространяться через границы домена приложения, исключения и содержащиеся в них данные должны быть сериализуемыми.

Одним из таких сценариев будет приложение клиент-сервер, связывающееся через удаленное взаимодействие. Если сервер выдает исключение и его необходимо обработать на стороне клиента, инфраструктура должна его сериализовать / десериализовать.

0 голосов
/ 04 октября 2008

Ну, строго говоря, нет ... вы можете добавить любой тип в словарь данных исключения ... но почему вы спросите? Как вы думаете, через какую границу они будут сериализованы?

...