我可以使用TypeDescriptor.AddAttributes将属性添加到在运行时类型。我怎么做的方法和参数一样吗? (也许2个独立的问题...)

有帮助吗?

解决方案

TypeDescriptor.AddAttributes仅影响一个非常特定的用例;即,从内System.ComponentModel。对于的休息的反思,它知道的没有的有关附加属性。事实上,System.ComponentModel并不真正适用于方法和参数。

因此,在短期;你不能。您需要到别的地方存储该信息(定制),或在编译时添加它。

其他提示

正如我从在反射器分析TypeDescriptor类看到,.AddAttributes方法内部调用.AddProvider方法。传递给它的TypeDescriptionProvider实例提供元数据实际负责。你可以尝试添加[TypeDescriptionProviderAttribute]属性到类和从TypeDescriptionProvider类派生实现自己的供应商。由于文件说,通过重写TypeDescriptionProvider.CreateInstance,你可以提供一个替代对象,其类型具有所有必要的属性。我怀疑的属性应用于方法替代型内也将生效。但是,我还没有尝试过自己,所以随时进行试验......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top