【发布时间】:2015-06-14 04:07:45
【问题描述】:
在测试中,我想从 JSON 字符串填充对象(视图模型)。例如,目标对象有这个属性:
public string Query { get; set; }
所以我希望能够做到这一点:
var target = ...;
JsonConvert.PopulateObject(target, "{ 'Query': 'test' }");
但是,Query 属性未设置。通过代码进行调试,target 上的属性似乎被忽略了,因为成员序列化是可选的。由于目标类不是数据契约,并且不会在单元测试之外以这种方式填充,因此我无法通过属性将其选择为成员序列化。
我找不到从外部修改成员序列化的方法。我希望PopulateObject 的超载设置可以让我这样做,但我看不到任何方法。
我如何确保PopulateObject 在我的目标上设置属性,即使它不是数据协定?
【问题讨论】:
-
你的
target变量是什么类型的? -
@Yuval:一个视图模型