这方面有很多Q,但我需要一个没有JSON.Net等的解决方案 - 我必须使用Asp.Net MVC中的罐装东西。
如何使用动态属性序列化POCO - 并获取所有静态属性?我发现的只是动态,或静态类型,这很容易。
e.g。
public class ReturnThisClassAsJSON {
public int Id {get; set; }
public string Name { get; set; }
public ContainedClass ContainedContents { get; set; }
}
public class ContainedClass {
public int Order { get; set; }
public string Label { get; set; }
public dynamic DynamicInfo { get; set; }
public List<dynamic> DynamicList { get; set }
}
答案 0 :(得分:0)
我自己的回答:
我用ContainedClass中的DynamicInfo和DynamicList替换了静态类型的动态。
随着动态,我有两个选择之一。使用上面的SO问题5156664将动态序列化为自己的序列化调用中的字符串。(这使我得到了类的其余部分,我也想要序列化并与之合并,因此这个问题)。或者,引发此错误:
&#34;在序列化类型为&#39; System.Reflection .RuntimeModule&#39;的对象时检测到循环引用。 &#34;
在ContainedClass上尝试单个序列化调用时。
所以,我把动力学转移到静态类型中:
public class ColumnValue
{
public string Name { get; set; }
public string Value { get; set; }
}
public class DynamicRow
{
public List<ColumnValue> ColumnValue { get; set; }
}
并将ContainedClass更改为:
public class ContainedClass
{
public List<ColumnValue> DynamicInfo { get; set; }
public List<DynamicRow> Data { get; set; }
}
并且,它使用开箱即用的Asp.Net MVC序列化:
return Json(ReturnThisClassAsJSON, JsonRequestBehaviour.AllowGet);