从函数中获取属性<T>

Get Attribute from Function<T>

如何从函数对象中获取自定义属性?

public static void Main(string[] args) {

    Func<object> fun = () => Foo();

    //fun. Get Foo Custom Attribute
}

[CustomAttrib]
public static object Foo() {
    return new object();
}

Function,据我所知,您要查找的信息不可用。

但是,如果它是 Expression,那就很容易了:

Expression<Func<object>> expression = () => Foo();
var method = ((MethodCallExpression)expression.Body).Method;
Console.WriteLine(method.GetCustomAttributes(false)[0]);

您可以使用 Compile() 方法将 Expression 转换为 Function

var fun = expression.Compile();

如果您自己定义 Function,这可能会有帮助,但如果来自您无法修改的某些第 3 方代码,则没有帮助。