C# attribute usage: only allow attributes on a property with specific data type [duplicate]

て烟熏妆下的殇ゞ 提交于 2019-12-18 08:30:00

问题


I've created a few attributes for properties. now I want to limit these attributes to properties with a certain data type? the idea is, a compiler error will be thrown if it is assign to a different type. is this possible?

if not, then I guess i'll have to check it on runtime.


回答1:


You could write a custom FxCop/ Code Analysis rule to check for this.

FxCop is integrated in VS 2010 under the name "Code Analyis", you can change the ruleset in the project properties.




回答2:


No, this is not possible.

A good workaround is to build a unit test which will traverse all classes, their properties and check for this additional applicability criteria. It's not that comfortable as a compile-time error message, but will serve the purpose. In case you have some kind of build automation infrastructure, the quality assurance level will be the same in practice.



来源:https://stackoverflow.com/questions/8574275/c-sharp-attribute-usage-only-allow-attributes-on-a-property-with-specific-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!