gpt4 book ai didi

c# - 缓存反射结果(类属性)

转载 作者:太空狗 更新时间:2023-10-29 20:04:02 25 4
gpt4 key购买 nike

考虑到相当静态的数据不应该被重新评估而是被缓存,我想知道是否可以使用反射一次获取类属性,然后缓存它们以便我可以动态评估对象属性并读取/分配值,但每次我这样做时都没有反射开销。这可能吗(示例代码?)?

为了澄清一点,假设我有这个类(class):

public class Cloud
{
Boolean IsWhite;
}

现在我正在尝试制作一个允许我做这样的事情的方法(伪代码):

Update(myCloudInstance, new {IsWhite, true});

如果 Update 已经知道 Cloud (typeof(myCloudInstance)) 的属性,现在应该首先检查缓存,然后使用缓存的信息为属性“IsWhite”分配值“true”,而不是再次进行反射。

关于如何做到这一点有什么想法吗?

最佳答案

不清楚究竟您在做什么,但缓存肯定会对反射产生影响。

特别是,如果您正在调用方法(或属性 getter/setter)并且就调用代码而言可以以类型安全的方式执行此操作,它 can make a huge difference如果您将 MethodInfo 转换为强类型委托(delegate)一次,然后重新使用它。

如果您能给我们一个完整的例子来说明您正在尝试做什么,那将有助于我们提出更具体的想法甚至代码。如果您只是要缓存可能没有那么多(或任何)效果的 PropertyInfo - 正常的 Type.GetProperty (等)方法可能已经存在相当快。与性能问题一样,关键是衡量您实际在做什么。进行更改并重新测量等。

关于c# - 缓存反射结果(类属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com