如何从Func <t>获取父类名?

时间:2018-04-08 19:01:35

标签: c# .net

让我说我有一个功能,就像下面的那个...

Func<ISession, IIncomingPacket, IControllerContext, Task>

我如何获得func方法所属的类?

1 个答案:

答案 0 :(得分:1)

Func已有关于声明类型的信息:myFunc.Method.DeclaringType - 请参阅Get MethodInfo for a lambda expression。请注意,在大多数情况下它实际上是无用的,因为这样的函数通常会在调用时内联声明 - 你可能需要通过类来查找有用的东西。

Func<int, string> f = (i => i.ToString());
Console.Write(f.Method.DeclaringType.Name);

您无法从Func<...>获取此类信息,并且在大多数情况下它实际上是无用的,因为此类函数通常会在呼叫点处内联声明。

通常要获取您使用Expression<...>的信息,请参阅How to get Method Name of Generic Func<T> passed into Method作为示例。