题
我可以使用TypeDescriptor.AddAttributes将属性添加到在运行时类型。我怎么做的方法和参数一样吗? (也许2个独立的问题...)
解决方案
TypeDescriptor.AddAttributes
仅影响一个非常特定的用例;即,从内System.ComponentModel
。对于的休息的反思,它知道的没有的有关附加属性。事实上,System.ComponentModel
并不真正适用于方法和参数。
因此,在短期;你不能。您需要到别的地方存储该信息(定制),或在编译时添加它。
其他提示
正如我从在反射器分析TypeDescriptor
类看到,.AddAttributes
方法内部调用.AddProvider
方法。传递给它的TypeDescriptionProvider
实例提供元数据实际负责。你可以尝试添加[TypeDescriptionProviderAttribute]属性到类和从TypeDescriptionProvider
类派生实现自己的供应商。由于文件说,通过重写TypeDescriptionProvider.CreateInstance
,你可以提供一个替代对象,其类型具有所有必要的属性。我怀疑的属性应用于方法替代型内也将生效。但是,我还没有尝试过自己,所以随时进行试验......
不隶属于 StackOverflow