c# - 改善绩效反射(reflect)——我应该考虑哪些替代方案?

标签 c# .net performance reflection

我需要动态设置一堆值或一个对象的属性,称之为传输对象。

将在短时间内创建相当数量的此类传输对象并设置其属性。我想避免使用反射。

有其他选择吗?如果有,是否有我可以查看的示例实现?

最佳答案

使用Delegate.CreateDelegateMethodInfo 转换为强类型委托(delegate)。这可以显着 提高性能。我有一个 blog post about this带有示例代码。请注意,这仅在您需要多次设置相同的属性时才有帮助 - 基本上这意味着很多类型检查在您创建委托(delegate)时完成一次,而不是在每次调用时完成.

Marc Gravell 有一个 HyperPropertyDescriptor该项目实现了更好的性能,但引入了额外的依赖项。该项目成为更现代的起点Fast Member (github)。通常,您会使用 Fast Member 而不是 HyperProperty。

关于c# - 改善绩效反射(reflect)——我应该考虑哪些替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1027980/

相关文章:

c# - 在单个窗口中切换到表单

c# - 响应式框架 (RX) 和异步处理事件

c# - .NET:事件的困难

c# - 在 C# 中使用 C++ 会有任何性能问题吗?

Android studio - 停止立即错误检查类和 xml

c# - 什么是IPC?我该如何使用它?

c# - LINQ/ Entity Framework : parameterless constructor issue

c# - WCF - 如何在 ISO8583 中序列化和反序列化?

.net - 在 Azure 云中部署不安全代码

performance - 为什么绘制调用很昂贵?