c# - 检索赋予方法参数的自定义属性
问题描述
我正在使用类似于 Microsoft 文档https://msdn.microsoft.com/en-us/library/cs58sb90(v=vs.110).aspx中的建议的逻辑来检索给定参数的自定义属性一个方法。
但是,我发现这种方法很昂贵,因为它使用反射来检索自定义属性,我想知道是否有比使用反射更好的方法来解决这个问题?
解决方案
据我所知,简短的回答是否定的,反射是标准的,并且可能是检索属性的唯一方法。
但是,属性在编译时在类型元数据中是固定的,这意味着您只需在程序的生命周期内为每种类型检查一次它们,并且除非您的代码正在执行某些操作,否则它们不会在那段时间内更改非常古怪的运行时类型构造(例如 with Reflection.Emit
)。即使您不知道代码需要属性的任何对象的确切类型,如果您真的很关心性能,您仍然可以将类型的属性缓存在字典中以节省再次查找它们。
推荐阅读
- amazon-sagemaker - 无需部署的 DeepAR 模型测试
- python-3.x - ModuleNotFoundError:没有名为“salesforceSoapApi”的模块
- flutter - 测试循环进度指示器
- javascript - 为测试脚本获取 google recaptcha 令牌
- azure - Azure DevOps 构建管道
- python - 记录导致行值比较变化的确切值python
- c# - 从 ChildVM 获取必要的 ViewModel 并将其设置为 ParentVM 中的属性
- javascript - 如何在继续之前等待所有文件被读取并执行所有回调
- c# - C# Entity Framework 6 - 选择列
- continuous-integration - 将文件保存在环境变量中