Подтвердить что ты не робот

Внедрение пользовательских исключений в портативной библиотеке классов

При разработке пользовательских исключений для .NET MSDN предоставляет эти рекомендации. В частности, в руководящих принципах указывается, что пользовательское исключение:

  • должен быть сериализуемым, т.е. реализовать ISerializable и быть украшен атрибутом [Serializable] и
  • должен реализовывать конструктор сериализации (de), т.е. protected CustomException(SerializationInfo info, StreamingContext context).

Однако в Portable Class Library поддерживаются ни SerializableAttribute, ISerializable, и SerializationInfo.

Как я должен правильно создать настраиваемое исключение в Portable Class Library, которое одновременно нацелено на .NET Framework и одну или несколько платформ?

4b9b3361

Ответ 1

В принципе, игнорируйте это руководство - то есть для полного .NET и не применимо к портативным проектам библиотеки классов. Действительно, если мы посмотрим (скажем) Silverlight (включая WP7), мы видим:

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class Exception

Честно говоря, основным потребителем этого требования было удаленное... и это сейчас не пользуется огромным спросом.