using static System.Console;
using System;
using System.Reflection;
public class Program {
public static void Main(string[] args) {
var x = new Derived();
x.Method();
}
}
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute {
public MyAttribute() => WriteLine("Executei o atributo...");
}
class Base {
public Base() {
foreach (var method in this.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance)) method.GetCustomAttributes(true);
}
}
class Derived : Base {
public Derived() => WriteLine("Executei o construtor da classe...");
[My]
public void Method() => WriteLine("Executei o método...");
}
//https://pt.stackoverflow.com/q/127867/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOwoKcHVibGljIGNsYXNzIFByb2dyYW0gewogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykgewoJCXZhciB4ID0gbmV3IERlcml2ZWQoKTsKCQl4Lk1ldGhvZCgpOwogICAgfQp9CgpbQXR0cmlidXRlVXNhZ2UoQXR0cmlidXRlVGFyZ2V0cy5BbGwpXQpwdWJsaWMgY2xhc3MgTXlBdHRyaWJ1dGUgOiBBdHRyaWJ1dGUgewogICAgcHVibGljIE15QXR0cmlidXRlKCkgPT4gV3JpdGVMaW5lKCJFeGVjdXRlaSBvIGF0cmlidXRvLi4uIik7Cn0KCgpjbGFzcyBCYXNlIHsKCXB1YmxpYyBCYXNlKCkgeyAKCQlmb3JlYWNoICh2YXIgbWV0aG9kIGluIHRoaXMuR2V0VHlwZSgpLkdldE1ldGhvZHMoQmluZGluZ0ZsYWdzLlB1YmxpYyB8IEJpbmRpbmdGbGFncy5JbnN0YW5jZSkpIG1ldGhvZC5HZXRDdXN0b21BdHRyaWJ1dGVzKHRydWUpOwoJfQp9CgpjbGFzcyBEZXJpdmVkIDogQmFzZSB7CglwdWJsaWMgRGVyaXZlZCgpID0+IFdyaXRlTGluZSgiRXhlY3V0ZWkgbyBjb25zdHJ1dG9yIGRhIGNsYXNzZS4uLiIpOwoJW015XQogICAgcHVibGljIHZvaWQgTWV0aG9kKCkgPT4gV3JpdGVMaW5lKCJFeGVjdXRlaSBvIG3DqXRvZG8uLi4iKTsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTI3ODY3LzEwMQ==