在可移植类库中实现自定义exception
在为.NET设计自定义exception时,MSDN提供了这些指南 。 特别是,指南声明了一个自定义exception:
- 应该是可序列化的,即实现
ISerializable
并使用[Serializable]
属性进行修饰,并且 - 应该实现(de)序列化构造函数,即
protected CustomException(SerializationInfo info, StreamingContext context)
。
但是,在可移植类库中,不支持SerializableAttribute
, ISerializable
和SerializationInfo
。
我应该如何在同时针对.NET Framework和一个或多个平台的可移植类库中充分设计自定义exception?
基本上,忽略该指导 – 即完整的.NET,并不适用于可移植类库项目。 实际上,如果我们看一下(比方说) Silverlight (包括WP7),我们会看到:
[ClassInterfaceAttribute(ClassInterfaceType.None)] [ComVisibleAttribute(true)] public class Exception
坦率地说,这个要求的主要消费者是远程服务 ……现在这并不是一个巨大的需求。