我想获取一个类型化的类,将其复制到动态对象,添加任意值,然后使用ServiceStack JSON转换器将其序列化为json对象。像这样:
dynamic toAddTo = new ExpandoObject();
toAddTo.CloneFrom(model);
toAddTo.arbitratyValue = "Fancy Things";
return jsonApiType.ToJson();
有没有人做过一些能够以高效的方式发挥作用的东西?
答案 0 :(得分:1)
不,您必须单独向ExpandoObject
添加属性。如果源对象是静态的并且属性数量不是太大,则可以创建匿名类型:
var jsonApiType = new {
model.Name,
model.Age,
...
arbitratyValue = "Fancy Things"
};
return jsonApiType.ToJson();
或者你可以包装你的模型:
var jsonApiType = new {
model,
arbitratyValue = "Fancy Things"
};
return jsonApiType.ToJson();
但是这会改变生成的JOSN,我怀疑你正在寻找一种“聪明”的方式来为你的模型中不存在的json添加属性。