欠けているDataContractSerializerが適切にデシリアライズしない、オブジェクトのメソッドの値は私の工ass
[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; }
}
}
私のXMLファイル:
<?xml version="1.0" encoding="UTF-8"?>
<SomeClass>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<CustomValues>
<Value1>One</Value1>
<Value2>Two</Value2>
</CustomValues >
</SomeClass>
しかし、私の問題は、クラスのためですが、私は唯一のいくつかを取得していますデシリアライズするときの私のメソッドのデータ。
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);
したがって、「someClass」にチェックを入れると、FirstNameの値はjohnになりますが、LastNameはnullになります。
ミステリーはどのようにデータの一部を取得でき、そのクラスのすべてのデータを取得することはできません。 デシリアライズ時にDataContractSerializerがXMLからすべてのデータをプルアップしていません。
私は何か間違っていますか?
何か助けていただければ幸いです。前もって感謝します。まあ、私はそれがalpahbetical順序でなければならない....たくさんの周りにそれを再生した後、自分の解答を見つけた
は、誰もが同じ問題を持っているなら、私を知ってみましょうか、いずれかの解決策
だろうあなたの最初の例では
は、データメンバーattrが公共の財産ではなく民間の1にすべきではありませんか? – Dani