在操作上设置自定义属性时是否可以读取自定义属性。
以下示例失败。
var simpleAction = new Action<string, string>((
[CustomAttr(DisplayName = "MyFirstArg")] a,
[CustomAttr(DisplayName = "MySecondArg")] b) => { });
var parameters = simpleAction.GetType().GetMethod("Invoke")!.GetParameters();
foreach(var parameter in parameters)
{
parameter.GetCustomAttribute<CustomAttr>()?.ShouldNotBeNull();
}
我知道我可以使用严格的
delegate
声明并且它有效。
但我的问题是是否有人有任何反射黑客可以让我获得这些自定义属性。
可以通过
Delegate.Method
属性访问该方法。
var parameters = simpleAction.Method.GetParameters();