Я пытаюсь установить атрибут метода, когда создаю объект, но не уверен, как go сообщить об этом (или, если это возможно).
Это то, что я пробовал так далеко:
public abstract class AbstractClass
{
public abstract string DynamicAttributeValue { get; }
public AbstractClass()
{
// Set the Attribute on THIS instance
TypeDescriptor.AddAttributes(typeof(AbstractClass).GetMethod("MyMethod"),
new Attribute[] {
new ConditionalAttribute(DynamicAttributeValue)
});
}
public void MyMethod()
{
}
}
class MyConcreteClass : AbstractClass
{
public override string DynamicAttributeValue => "MyRunTimeValue";
static void Main(string[] args)
{
MyConcreteClass myClass = new MyConcreteClass();
string callingMethodName = "MyMethod";
MethodInfo methodInfo = myClass.GetType().GetMethod(callingMethodName);
var attributes = methodInfo.GetCustomAttributes();
}
}