Json文字列をデバッグモードでオブジェクトにデシリアライズしようとしていますが、System.RuntimeTypeに宣言されたプロパティの定義が含まれていないなど、 ...System.RuntimeTypeに宣言されたプロパティの定義が含まれていません
任意のヘルプは
public T DeserializeJSon<T>(string jsonString)
{
dynamic dT = typeof(T);
if (dT.Name.EndsWith("List"))
dT = dT.DeclaredProperties[0].PropertyType.GenericTypeArguments[0];
DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings()
{
DateTimeFormat = new DateTimeFormat(DateTimeFormat),
UseSimpleDictionaryFormat = true
};
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T), settings);
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(stream);
stream.Dispose();
return obj;
}
なぜ 'dyanmic'を使うのですか?' typeof(T) 'は* allways *が' System.Type'のインスタンスを返すので、 'dynamic'ではなくtypeを使うべきです。 – HimBromBeere
@HimBromBeereもっと具体的にお試しください。このようにしてみてください。タイプdT = typeof(T); DeclaredPropertiesはエラーを返す拡張メソッドです –