Вы можете использовать Type.GetInterface
, убедиться, что возвращаемое значение не равно нулю, а затем использовать отражение для него, чтобы получить тип.Например:
var @class = typeof(Test);
var methods = @class.GetMethods();
PrintMethods("Test", methods);
methods = @class.GetInterface("ITest", true).GetMethods();
PrintMethods("ITest", methods);
static void PrintMethods(string typeName, params MethodInfo[] methods)
{
Console.WriteLine("{0} methods:", typeName);
foreach(var method in methods)
{
Console.WriteLine("{0} returns {1}", method.Name, method.ReturnType);
}
}
Выходы (за исключением моего разделительного пространства):
Test methods:
Find returns T
ToString returns System.String
Equals returns System.Boolean
GetHashCode returns System.Int32
GetType returns System.Type
ITest methods:
Find returns System.Collections.Generic.List`1[T]
РЕДАКТИРОВАТЬ:
Хотя ответ Ани, кажется, решает это для вас без необходимостиприбегнуть к тому, что предлагается здесь.