在可移植类库中实现自定义异常

时间:2012-11-28 12:06:49

标签: c# .net exception windows-store-apps portable-class-library

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

  • 应该是可序列化的,即实现ISerializable并使用[Serializable]属性进行修饰,
  • 应该实现(de)序列化构造函数,即protected CustomException(SerializationInfo info, StreamingContext context)

但是,在Portable Class Library SerializableAttribute中,ISerializableSerializationInfo和{{1}}都不受支持。

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

1 个答案:

答案 0 :(得分:17)

基本上,忽略该指导 - 适用于完整的.NET,并且不适用于可移植类库项目。实际上,如果我们看(例如)Silverlight(包括WP7),我们会看到:

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

坦率地说,该要求的主要消费者是远程 ......现在这种需求并不是很大。