当从一个SerializationException调用到另一个AppDomain时,我得到了一个枚举的AppDomain:
对于成员‘System.Runtime.Serialization.SerializationException:,Dummy.MyEnum,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null’,不解析
Dummy.MyEnum类型。
样本代码:
public enum MyEnum
{
A = 0,
B = 1,
C = 2,
}
public class FooBar : MarshalByRefObject
{
public void Test1(MyEnum dummy)
{
}
public void Test2(object dummy)
{
}
}此调用将引发异常:
getFooBarInOtherAppDomain().Test1(MyEnum.A);当使用任何其他可序列化类型时,它将成功:
getFooBarInOtherAppDomain().Test2(0);调用方、被调用方和枚举在同一程序集中定义。
.Net与“类型未被解析”意味着什么?为什么抛出异常?默认情况下枚举不能序列化吗?
发布于 2010-02-09 10:30:42
每个AppDomain都有自己的程序集探测路径,配置为AppDomainSetup类。主app.config的AppDomain文件。在您的示例中,它是查找要加载的程序集,但与用于序列化数据的程序集不同。它找到的那个缺失了枚举类型。使用Fuslogvw.exe对此进行故障排除,可以让您查看正在解析的程序集。
https://stackoverflow.com/questions/2227870
复制相似问题