2011-12-30 123 views

回答

2

Idsa, 它的工作方式是,当你有一个ctor和一个json时,我们尝试将ctor参数与json属性相匹配,看看我们是否可以使它工作。

这种行为被内置到Json.NET

+0

真的很酷的东西:) – SiberianGuy 2012-01-01 09:41:14

-1

当您不指定一个Visual Studio会自动在IL中生成一个。

如果您指定了一个私有的无参数构造函数,那么将不会生成默认的公有无参数构造函数。

作为一个实验尝试添加一个默认没有参数私人构造函数来测试这个理论。我会假设RavenDb可能会遇到问题。

+0

我有一个非默认的公共consructor一个实体,我看不出有RavenDb的任何问题它。我只是好奇它为什么如此 – SiberianGuy 2011-12-30 17:05:51

0

我相信RavenDB无法自动处理。如果我没有弄错,RavenDB会使用Newtonsoft JSON库序列化为JSON。因此,您必须为其提供自定义解析器。

请参阅'Immutable entities'关于RavenDB FAQ,关于Raven DB Google集团this discussion的更多信息。

+0

从你提到的讨论引用:“JsonSerializer 似乎只是没有任何定制的工作原理”。所以它确实有效(我在我的应用程序中看到它)。我只是好奇它是如何实施的 – SiberianGuy 2011-12-30 17:02:02