c# - 调用类中每个属性的最佳方法

标签 c#

我在 SDK 中有一个类,我有兴趣调用它的每个属性。我知道唯一的方法(我认为这是唯一的方法)是使用反射,大多数人声称反射很慢等(尽管我看过一些文章说明在某些情况下它并不像最初想象的那么慢).

有没有比循环调用目标类中的每个属性更好的方法?

另外,为什么认为反射这么慢?

最佳答案

可能值得看看 TypeDescriptors。据我所知,它们比使用反射有一些性能优势,并且工作方式略有不同(例如,它们缓存元数据)。 MSDN 文章描述类型描述符如何使用反射的方式让我感到困惑,因此您可能需要找到更广泛的解释(因此第三个链接可能更有帮助)。

类型描述符的 API 类似于用于反射的 API。

导航到:

然后对您的问题给出松散的答案: 1) 由于缓存和与反射 TypeDescriptors 略有不同的实现,我提供了比单独反射的性能改进

2) 您可以一口气检索属性和(调用/设置/获取?)属性。这可能是调用 invoke 类型方法并编写 lambda 语句对返回的集合执行某些操作的情况?

关于c# - 调用类中每个属性的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327278/

相关文章:

c# - user32 MoveWindow 不适用于 C#、Windows 7、控制台应用程序

c# - 在多个订阅者的情况下,委托(delegate)如何知道调用哪个函数

c# - WPF - 防止用户操作在应用程序繁忙时排队

C#自定义控件重绘慢

c# - ContextMenuStrip 你如何强制更新(大小错误 b/c 我隐藏了它的一些项目)

c# - 如何为 PropertyDescriptor 定义类级属性以对 BindingList 进行排序?

c# - 在 ASP.Net MVC 中使用 DropDownList 的最佳编程实践

c# - 是否可以定义无法实现的有效 C# 接口(interface)?

c# - asp 标签的字符数限制为 1000 个字符

c# - 如何将 null 传递给 asp :Parameter