Serialization 使用JSON.Net将对象转换为动态对象

Serialization 使用JSON.Net将对象转换为动态对象,serialization,json.net,Serialization,Json.net,我想做的是,获取一个对象构造(例如,一个实体框架对象),然后将其转换为一个动态对象(认为JSON.Net JObject可能是最合适的),并使用附加属性扩展所述对象以发送到客户机或视图模板 dynamic model = JS.ToJObject(myConcreteInstance); model.AdditionalValue = "I need this stuff on the client... "; 这是我所拥有的,它是有效的,但我宁愿不要尝试/捕获 //JS.ToJObject p

我想做的是,获取一个对象构造(例如,一个实体框架对象),然后将其转换为一个动态对象(认为JSON.Net JObject可能是最合适的),并使用附加属性扩展所述对象以发送到客户机或视图模板

dynamic model = JS.ToJObject(myConcreteInstance);
model.AdditionalValue = "I need this stuff on the client... ";
这是我所拥有的,它是有效的,但我宁愿不要尝试/捕获

//JS.ToJObject
public static JObject ToJObject(object input)
{
    try {
        //anonymous types throw an exception here
        //    Could not determine JSON object type for type f__AnonymousType ...
        return new JObject(input);
    } catch(Exception) {
        //fallback to serialize/deserialize, which seems wasteful
        var txt = JsonConvert.SerializeObject(
            input
            ,new IsoDateTimeConverter()
            ,new DataTableConverter()
            ,new DataSetConverter()
        );
        return JObject.Parse(txt);
    }
}