我认为这将是一项简单的任务。在我的Silverlight应用程序中,我正在捕获IOException
(在这种特殊情况下,我想在用户尝试保存已在另一个应用程序中打开的文件时向用户显示消息)。我想我会找到此异常的HResult
并向用户显示本地化消息。
不幸的是,Exception.HResult
在Silverlight中是protected
(我正在使用Silverlight 5)。因此,我无法访问我感兴趣的例外HResult
。
我还找到了Marshal.GetHRForException
,但这个方法在Silverlight中是internal
(尽管有MSDN文档)。我发现有证据表明可以从受信任的应用程序调用此方法,但我的应用程序不会作为受信任的应用程序运行。
如何区分可能发生的不同IOException
?我是否因为可能出现的任何IOException
而显示一条通用错误消息?
我发现了一些令人惊讶的少量信息,并且无法继续前进。
我想我应该注意,在我的开发机器上,当我尝试保存到另一个应用程序中打开的文件时,我收到一条很好的描述性错误消息。但是,在没有安装Silverlight SDK的计算机上,我收到一条消息,指出调试资源字符串不可用。