在为 .NET 设计自定义异常时,MSDN 提供了这些指导方针 http://msdn.microsoft.com/en-us/library/ms229064.aspx。特别是,指南规定自定义异常:
- 应该是可序列化的,即实现
ISerializable
并装饰有[Serializable]
属性,以及
- 应该实现(反)序列化构造函数,即
protected CustomException(SerializationInfo info, StreamingContext context)
.
然而,在一个便携式类库 http://msdn.microsoft.com/en-us/library/gg597391.aspx两者都不是SerializableAttribute
, ISerializable
and SerializationInfo
都支持。
我应该如何在同时面向 .NET Framework 和一个或多个平台的可移植类库中充分设计自定义异常?
基本上,忽略该指南 - 这是针对完整的 .NET,并且不适用于可移植类库项目。确实,如果我们看(比如说)银光 http://msdn.microsoft.com/en-us/library/system.exception(v=vs.95).aspx(其中包括 WP7)我们看到:
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class Exception
坦率地说,该要求的主要消费者是remoting......现在需求量不大。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)