18

在为 .NET 设计自定义异常时,MSDN 提供了这些指南。特别是,指南规定了一个自定义例外:

  • 应该是可序列化的,即用属性实现ISerializable和装饰,并且[Serializable]
  • 应该实现(反)序列化构造函数,即protected CustomException(SerializationInfo info, StreamingContext context).

但是,在可移植类库SerializableAttributeISerializableSerializationInfo都不支持。

我应该如何在同时针对 .NET Framework 和一个或多个平台的可移植类库中充分设计自定义异常?

4

1 回答 1

18

基本上,忽略该指导 - 这是针对完整的 .NET,不适用于可移植类库项目。事实上,如果我们看一下(比如说)Silverlight(包括 WP7),我们会看到:

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

坦率地说,该要求的主要消费者是远程处理……而且现在的需求并不大。

于 2012-11-28T12:36:32.473 回答