gpt4 book ai didi

.net - 为什么 InvalidEnumArgumentException 在 Silverlight 4 中已过时?

转载 作者:行者123 更新时间:2023-12-01 12:59:21 24 4
gpt4 key购买 nike

我很惊讶地发现 InvalidEnumArgumentException 在 Silverlight 4 中已经过时了。

有人知道为什么吗?我发现这是一个非常有用的异常(exception),尤其是在手动将二进制数据反序列化为枚举值时。

[ObsoleteAttribute(
"InvalidEnumArgumentException is obsolete. Use ArgumentException instead.")]
public class InvalidEnumArgumentException : Exception

最佳答案

你是对的,它被标记为过时但完全存在(这里是 the correct link pointing to the Silverlight Version of the class )

我认为这个特殊的“为什么”问题对于这里的每个人来说都很难回答,他们不在微软工作并参与了审查此类更改的过程。 Microsoft 可能有某种文档解释了在当前版本中将其标记为过时的高级原因。现在就是这样,我担心你可能不得不忍受它。

出于兴趣,我用 bing 搜索了一下,这里的这个 SO 线程是我能找到的关于该主题的最佳选择。即使在 Silverlight.net die 上寻找它也不会产生任何结果。因此,要么您需要黄金合作伙伴契约(Contract)(或其他任何名称),并直接就该问题与 Microsoft 的人员联系。

然而,关于这个非常相似的异常似乎有一些争议,无论是否使用它的好习惯,我想引用关于这个 link 的评论,谈论不一致:

Unfortunately, as InvalidEnumArgumentException is defined in System.dll and not mscorlib.dll, the later does not throw it when an invalid enum argument is passed to a member, but instead throws ArgumentException or ArgumentOutOfRangeException. This inconsistancy however, usually does not present a problem, as this exception, when thrown, typically indicates a bug in the caller and is rarely caught within a catch clause.



因此,这可能也影响了导致将其从 Silverlight 中删除的整个情况。或不。也许只是因为他们认为这是不必要的开销,可以这么说,因为你可能正在捕获 ArgumentExceptions 并且大多数实现通过进一步分解它没有任何好处。这只是一个猜测,但恐怕你不会得到比这更好的(除了其他随机猜测)。

如果您愿意,您当然可以添加自己的 InvalidEnumArgumentException 实现,我猜您已经这样做了。

关于.net - 为什么 InvalidEnumArgumentException 在 Silverlight 4 中已过时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com