在 .NET Standard 1.5 中实现异常

Implementing Exceptions in .NET Standard 1.5

当我面向 .NET Standard 1.5 和更早版本时,如何实现新的 Exception[Serializable] 属性不可用,我的理解是这是完整的 .NET 框架所必需的。

[Serializable]
public class MyException : Exception
{
   // ...
}

完整的 .NET Framework 有一个最佳实践 来实现三个魔术构造函数并使用 Serializable 属性对其进行注释。据我所知,这是由于远程处理和应用程序域造成的。但这并不妨碍您在没有可序列化属性的情况下传递异常。

但是,您必须注意,如果应用序列化(应用程序域、远程处理...),该异常的序列化将会失败。

.NET Core 项目的 CoreFx 库部分 does not 使用可序列化属性注释异常 类。

.NET Core 团队知道 problem

Serializable 属性现在在 .NET Standard 2.0 中可用。