Mi SomeClassDataContractSerializer no deserializar correctamente, los valores para los métodos de objeto faltan
[Serializable]
[DataContract(Namespace = "")]
public class SomeClass
{
[DataMember]
public string FirstName
{
get; set;
}
[DataMember]
public string LastName
{
get; set;
}
[DataMember]
private IDictionary<long, string> customValues;
public IDictionary<long, string> CustomValues
{
get { return customValues; }
set { customValues = value; }
}
}
mi archivo XML:
<?xml version="1.0" encoding="UTF-8"?>
<SomeClass>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<CustomValues>
<Value1>One</Value1>
<Value2>Two</Value2>
</CustomValues >
</SomeClass>
Pero mi problema es que la clase, yo sólo estoy recibiendo algunos de los datos de mis métodos cuando me deserializo
var xmlRoot = XElement.Load(new StreamReader(
filterContext.HttpContext.Request.InputStream,
filterContext.HttpContext.Request.ContentEncoding));
XmlDictionaryReader reader = XmlDictionaryReader.CreateDictionaryReader(xmlRoot.CreateReader());
DataContractSerializer ser = new DataContractSerializer(typeof(SomeClass));
//Deserialize the data and read it from the instance.
SomeClass someClass = (SomeClass)ser.ReadObject(reader, true);
Así que cuando puedo comprobar "algunaClase", Nombre tendrá el valor Juan, pero el Apellido será nulo.
Misterio es cómo puedo obtener algunos de los datos y no todos los datos de la clase. Entonces DataContractSerializer no está sacando todos los datos de xml al deserializar.
Estoy haciendo algo mal.
Cualquier ayuda es apreciada. Gracias por adelantado.
Déjame saber si alguien tiene el mismo problema o cualquiera tiene solución
no debería DataMember attr estar en la propiedad pública y no en el privado? – Dani