如何在c#中没有性能影响的情况下读取和设置私有字段?

Ols*_*ius 5 c# reflection performance

RavenDB可以序列化任何给定C#对象上的所有公共,私有和受保护属性,即使没有任何序列化属性.

我知道这可以通过反射来完成,但这会产生一些性能问题.还有其他更有效的方法来实现这一目标吗?

要在.NET中使用内置序列化,需要注释或实现一些序列化接口,而RavenDB可以将任何给定对象序列化为JSON.

我对它使用的技术更感兴趣,而不是特定的RavenDB.

Cod*_*aos 1

如果通过反射设置属性太慢,您可以生成在运行时设置它们的动态方法。这可以使用Relection.Emit或通过创建编译Expression<T>.