我想知道有没有人成功地将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=类型“ElasticTest1.MyDynamicObject”不能继承未标记有DataContractAttribute或SerializableAttribute的类型。请考虑为基础类型“System.Dynamic.DynamicObject”标记DataContractAttribute或SerializableAttribute,或从派生类型中删除它们。