Nic*_*eon 11 .net code-analysis exception compiler-warnings
我从各种异常中派生了几个类.现在vs在这个问题的标题中发出警告.
有人可以解释抑制这条规则的含义吗?
2.你能解释一下这里的规则 吗?"不要为了这个规则而禁止对异常类发出警告,因为它们必须是可序列化的,才能跨应用程序域正常工作."?
谢谢.
PS嗯,我自己也得到了答案.您确实必须将异常标记为可序列化.它们在同一AppDomain中没有此属性的情况下工作正常.但是,如果您尝试从其他域捕获它,则必须进行序列化才能跨越应用程序边界.这就是我找到的主要原因.
Han*_*ant 15
这不完全是Visual Studio警告,它是由FxCop工具生成的警告.您可以从VS Analyze菜单运行.FxCop是一个静态分析器,它在.NET程序中查找编译器不会标记的常见陷阱.它的大多数警告都非常模糊,而且很少是非常严重的问题,你需要将它视为"你有没有想过这个?" 一种工具.
它试图在这里提醒你的小事实是,Exception类实现了ISerializable并具有[Serializable]属性.这是一个非常困难的要求,它使基本的Exception对象可以跨应用程序域进行序列化.必要因为Exception不是从MarshalByRefObject派生的.并且必须允许您在另一个应用程序域中运行的代码抛出您可以捕获的异常.
所以FxCop指出你没有为自己的Exception派生类做同样的事情.如果你打算让代码在另一个app-domain中运行你的异常,那么这真的只是一个问题.FxCop不够聪明,不知道你是否这样做它只能提醒你它出错了.这是非常罕见的,所以当你不知道你是否愿意或者听起来对你来说这听起来像中文时,请随意忽略警告.
归档时间: |
|
查看次数: |
2819 次 |
最近记录: |