我注意到RavenDb不需要实体具有默认构造函数。它是如何在查询期间创建对象的呢?RavenDb对象实例化
回答
Idsa, 它的工作方式是,当你有一个ctor和一个json时,我们尝试将ctor参数与json属性相匹配,看看我们是否可以使它工作。
这种行为被内置到Json.NET
当您不指定一个Visual Studio会自动在IL中生成一个。
如果您指定了一个私有的无参数构造函数,那么将不会生成默认的公有无参数构造函数。
作为一个实验尝试添加一个默认没有参数私人构造函数来测试这个理论。我会假设RavenDb可能会遇到问题。
我有一个非默认的公共consructor一个实体,我看不出有RavenDb的任何问题它。我只是好奇它为什么如此 – SiberianGuy 2011-12-30 17:05:51
我相信RavenDB无法自动处理。如果我没有弄错,RavenDB会使用Newtonsoft JSON库序列化为JSON。因此,您必须为其提供自定义解析器。
请参阅'Immutable entities'关于RavenDB FAQ,关于Raven DB Google集团this discussion的更多信息。
从你提到的讨论引用:“JsonSerializer 似乎只是没有任何定制的工作原理”。所以它确实有效(我在我的应用程序中看到它)。我只是好奇它是如何实施的 – SiberianGuy 2011-12-30 17:02:02
- 1. 对象实例化
- 2. 实例化对象
- 3. ActionScript - 从实例实例化新对象?
- 4. 对象的实例化
- 5. 从IType实例化对象
- 6. JUnit TestCase对象实例化
- 7. 旋转实例化对象
- 8. 实例化ActiveX对象
- 9. Python OOP对象实例化
- 10. Java对象实例化
- 11. Java对象实例化
- 12. 实例化春bean对象
- 13. DocumentDatabase对象的实例化
- 14. Python对象实例化
- 15. C++:实例化对象
- 16. 实例化对象OracleDate
- 17. 实例化对象的类
- 18. C#对象实例化
- 19. 实例化对象(codecademy)
- 20. JavaScript对象实例化
- 21. 实例化对象速记
- 22. 对象实例化另一个对象?
- 23. 实例化对象和对象成员
- 24. 在初始化中实例化对象?
- 25. 对实例化对象的NullReferenceException?
- 26. 实例化不可变配对对象
- 27. 对象没有正确实例化
- 28. 从C#访问XAML实例化对象#
- 29. 实例化一个继承对象
- 30. 实例化类的静态对象
真的很酷的东西:) – SiberianGuy 2012-01-01 09:41:14