我有一个正在使用的客户端/服务器包,我正在尝试使用 Exception.Data 将自定义信息传递到一个单独的类 (ExceptionError) 以传递到 MessageBox。
当我尝试连接到服务器而不实际启动服务器以侦听连接时,以下捕获过程。只是对那部分的疏忽,监听连接并不是真正的问题,但它向我展示了 Exception.Data 的问题。
catch (Exception e)
{
e.Data["SourceFile"] = "Client.cs";
e.Data["MethodName"] = "Send_CommandToServer";
e.Data["ExceptionType"] = "Exception";
object[] exceptionArgs = new object[8] { null, e.InnerException,
e.Message, null, e.Source, e.StackTrace,
e.TargetSite, e.Data };
ExceptionError.Show(exceptionArgs);
}
这是抛出 InvalidCastException 的 ExceptionError 类中的行:
Dictionary<string,string> data = (Dictionary<string, string>)exceptionArgs[7];
// exceptionArgs[7] is Exception.Data
这是我收到的实际错误:
无法将“System.Collections.ListDictionaryInternal”类型的对象转换为“System.Collections.Generic.Dictionary`2[System.String,System.String]”类型。
我找不到任何关于 ListDictionaryInternal 的信息,我所做的大多数谷歌搜索都指向 System.Collections.Specialized.ListDictionary,它会产生自己的问题。有谁知道 ListDictionaryInternal 或者你能帮我将 e.Data 传递给我的 ExceptionError 类吗?