C# 将ExpandoObject发送到另一个AppDomain
我试图将一个动态对象(类型C# 将ExpandoObject发送到另一个AppDomain,c#,.net,appdomain,expandoobject,dynamicobject,C#,.net,Appdomain,Expandoobject,Dynamicobject,我试图将一个动态对象(类型ExpandoObject)从主AppDomain发送到另一个,显然,ExpandoObject没有标记为可序列化的异常 此外,此ExpandoObject具有内部字典成员(dictionary),以满足我的需要 我已经尝试使用Json.Net(JObject)将ExpandoObject转换为Json,但是内部字典没有反序列化为数组,因此在尝试访问其属性时出现异常 有人知道如何序列化动态对象并将其发送到另一个AppDomain吗 主AppDomain代码: dynam
ExpandoObject
)从主AppDomain发送到另一个,显然,ExpandoObject没有标记为可序列化的
异常
此外,此ExpandoObject
具有内部字典成员(dictionary
),以满足我的需要
我已经尝试使用Json.Net(JObject
)将ExpandoObject
转换为Json,但是内部字典没有反序列化为数组,因此在尝试访问其属性时出现异常
有人知道如何序列化动态对象并将其发送到另一个AppDomain吗
主AppDomain代码:
dynamic dynamicObj = expBuilder.GenerateDynamicObj();
ExpressionInMemory exp = (ExpressionInMemory)ExpressionDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(ExpressionInMemory).FullName);
exp.SetDynamicObj(dynamicObj);
...
public void SetDynamicObj(dynamic obj)
{
this._dynamicObj = obj;
}
...
备选AppDomain代码:
dynamic dynamicObj = expBuilder.GenerateDynamicObj();
ExpressionInMemory exp = (ExpressionInMemory)ExpressionDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(ExpressionInMemory).FullName);
exp.SetDynamicObj(dynamicObj);
...
public void SetDynamicObj(dynamic obj)
{
this._dynamicObj = obj;
}
...
简言之,为了能够将具有Expando对象相同行为的动态对象传递给另一个AppDomain,我必须创建一个继承动态对象并实现所有ISerializable和IDictionary函数的新类
非常好。很有趣,你能和大家一起上课吗?