me preguntaba si alguien ha tenido un poco de suerte para conseguir una DynamicObject para serializar y trabajar con WCF?DynamicObject y apoyo WCF
Aquí está mi pequeña prueba:
[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);
El error que consigo es:
System.Runtime.Serialization.InvalidDataContractException fue controlada Mensaje = Tipo 'ElasticTest1.MyDynamicObject' no puede heredar de una tipo que no está marcado con DataContractAttribute o SerializableAttribute. Considere marcar el tipo base 'System.Dynamic.DynamicObject' con DataContractAttribute o SerializableAttribute, o eliminarlos del tipo derivado.
¿Alguna sugerencia?
El mensaje de error indica que no se puede hacer esto a menos que cambie System.Dynamic.DynamicObject la que no se puede porque es parte de .NET Framework. Entonces no puedes hacer esto. ¿Qué estás tratando de lograr, tal vez hay una manera diferente de alcanzar el mismo objetivo? – dtb
Por supuesto, aunque no puede cambiar DynamicObject, es de código abierto (http://dlr.codeplex.com/) para que pueda copiarlo y modificarlo. –
Estoy tratando de enviar un DynamicObject por cable a un cliente SL 4. – rboarman