我知道我可以像这样创建自定义类属性:
[AttributeUsage(AttributeTargets.Class)]
class MyClassAttribute : Attribute {
// Logic in here to apply MyMethodAttribute to all methods
// in the class to which this is applied.
}
...我可以创建一个自定义方法属性,如下所示:
[AttributeUsage(AttributeTargets.Method)]
class MyMethodAttribute : Attribute { }
如何编辑MyClassAttribute
的逻辑,以便它自动将MyMethodAttribute
应用于我应用它的类中的所有方法? 这可能吗?
答案 0 :(得分:1)
根据this documentation,不可能触发其他一些装饰逻辑,因为Attribute
本身无法访问它所应用的类(或方法)。
答案 1 :(得分:1)
如何使用partial methods和T4?
您运行模板 - 它使用reflection为具有该属性的类中的所有方法生成部分方法存根,并自动添加该属性。
显然它并不理想(您必须将您的课程标记为部分,并且每个装配需要一个模板),但它可能适合您。