DynamicObject и поддержка WCF

Я задавался вопросом, была ли у кого-либо удача, заставляя 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);

Ошибка, которую я получаю:

Система. Время выполнения. Сериализация. InvalidDataContractException был необработанным Message=Type 'ElasticTest1. MyDynamicObject' не может наследоваться типу, который не отмечен с DataContractAttribute или SerializableAttribute. Считайте маркировку базового типа 'Системой. Динамичный. DynamicObject' с DataContractAttribute или SerializableAttribute или удалением их от производного типа.

Какие-либо предложения?

9
задан dtb 20 April 2010 в 01:14
поделиться