【发布时间】:2010-02-09 09:09:49
【问题描述】:
当从一个 AppDomain 调用到另一个 AppDomain 时,我收到一个枚举的 SerializationException:
System.Runtime.Serialization.SerializationException: 未为成员解析类型 'Dummy.MyEnum,Dummy, 版本=1.0.0.0, Culture=neutral, PublicKeyToken=null'。
示例代码:
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 中的“类型未解析”是什么意思,为什么会抛出异常?默认情况下枚举不是可序列化的吗?
【问题讨论】:
-
您是否从每个 App 域的 2 个不同位置加载程序集?
标签: c# .net serialization appdomain