public class TestData
{
public string Name { set; get; }
}
public class Test
{
public string Test<T>(T data)
{
return typeof(T).Name;
}
public static string TestStatic<T>(T data)
{
return $"TestStatic===>{typeof(T).Name}";
}
}
public class TestCall
{
public T CallFunc<T>(object param, object methodData, string methodName)
{
Type type = param.GetType();
MethodInfo mi = methodData.GetType().GetMethod(methodName).MakeGenericMethod(new Type[] { type });
var ret = mi.Invoke(methodData, new object[] { param });
return (T)ret;
}
public T CallStaticFunc<T>(object param, Type methodType, string methodName)
{
Type type = param.GetType();
MethodInfo mi = methodType.GetMethod(methodName).MakeGenericMethod(new Type[] { type });
var ret = mi.Invoke(null, new object[] { param });
return (T)ret;
}
}
利用C#反射机制,将type作为泛型T传入方法
最新推荐文章于 2024-04-28 20:31:07 发布