RavenDB可以序列化任何给定C#对象上的所有公共,私有和受保护属性,即使没有任何序列化属性也是如此。
我知道这可以通过反射来完成,但这会产生一些性能问题。还有其他更有效的方法来实现这一目标吗?
在.NET中使用内置序列化需要注释或实现一些序列化接口,而RavenDB可以将任何给定对象序列化为JSON。
我对它使用的技术更感兴趣,而不是特定的RavenDB。
答案 0 :(得分:1)
如果通过反射设置属性太慢,则可以生成在运行时设置它们的动态方法。这可以使用Relection.Emit
或通过创建编译Expression<T>
来完成。
答案 1 :(得分:0)
向NHibernate寻求灵感 - 除了其他选择之外,它还为您提供了使用界面表达哪些属性的机会。在引擎盖下,实现接口的对象确实改变了处理。