当我面向.NET Standard 1.5及更早版本时,如何实现新的Exception? [Serializable]属性不可用,我的理解是这是完整的.NET框架所必需的。
Exception
[Serializable]
[Serializable] public class MyException : Exception { // ... }
完整的.NET Framework具有实现三个魔术构造函数的最佳实践,并使用Serializable属性进行注释。据我所知,这是由于远程处理和应用程序域。但这并不妨碍您在没有可序列化属性的情况下发送异常。
但是,您必须意识到,在应用序列化的情况下,该异常的序列化将失败(app Domains,remoting,...)。
.NET Core项目的CoreFx库部分does not使用可序列化的Attribute注释异常类。
.NET核心团队了解problem。
Serializable属性现在可在.NET Standard 2.0中使用。
Serializable