我想知道是否有人幸运地让 DynamicObject 序列化并使用 WCF?
这是我的小测试:
[DataContract]
class MyDynamicObject : DynamicObject
{
[DataMember]
private Dictionary<string, object> _attributes =
new Dictionary<string, object>();
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
string key = binder.Name;
result = null;
if (_attributes.ContainsKey(key))
result = _attributes[key];
return true;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
_attributes.Add(binder.Name, value);
return true;
}
}
var dy = new MyDynamicObject();
var ser = new DataContractSerializer(typeof(MyDynamicObject));
var mem = new MemoryStream();
ser.WriteObject(mem, dy);
我得到的错误是:
System.Runtime.Serialization.InvalidDataContractException 未处理 Message=Type 'ElasticTest1.MyDynamicObject' 不能从未用 DataContractAttribute 或 SerializableAttribute 标记的类型继承。考虑使用 DataContractAttribute 或 SerializableAttribute 标记基类型“System.Dynamic.DynamicObject”,或从派生类型中删除它们。
有什么建议么?