Внедрение пользовательских исключений в портативной библиотеке классов
При разработке пользовательских исключений для .NET MSDN предоставляет эти рекомендации. В частности, в руководящих принципах указывается, что пользовательское исключение:
- должен быть сериализуемым, т.е. реализовать
ISerializable
и быть украшен атрибутом [Serializable]
и
- должен реализовывать конструктор сериализации (de), т.е.
protected CustomException(SerializationInfo info, StreamingContext context)
.
Однако в Portable Class Library поддерживаются ни SerializableAttribute
, ISerializable
, и SerializationInfo
.
Как я должен правильно создать настраиваемое исключение в Portable Class Library, которое одновременно нацелено на .NET Framework и одну или несколько платформ?
Ответы
Ответ 1
В принципе, игнорируйте это руководство - то есть для полного .NET и не применимо к портативным проектам библиотеки классов. Действительно, если мы посмотрим (скажем) Silverlight (включая WP7), мы видим:
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class Exception
Честно говоря, основным потребителем этого требования было удаленное... и это сейчас не пользуется огромным спросом.