C#泛型获取传入的动态类型参数的属性值的问题
dynamic tt = SortObj.GetType().GetProperty(Key).GetValue(SortObj, null);
对C#泛型实例化对像,在使用泛型的类后面加入一个 where T : new(),代码如下:
public class B<T> where T : new()
{
public static T Get()
{
T result = new T();//这样就可以实例化。也可以编译通过。
}
}
NET 反射技术传递参数实例
static void Main(string[] args)
{
//此处用反射调用DLL文件,路径是我硬盘的路径
Assembly a = Assembly.LoadFrom("D:\工作文件\Code\Code\Function\bin\Debug\Code.Function.dll");
Type[] tList = a.GetTypes();//获取该DLL程序集中定义的类或类型
if (tList != null)//如果不为空
{
foreach (Type tItem in tList)//遍历每一个类或类型
{
//获取类中的方法
MethodInfo[] methods = tItem.GetMethods(BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.Public);
//在类中查找方法名为“Show”的方法。
MethodInfo mShow = findMethod(methods, "Show");
if (mShow != null)
{
//创建该类的实例
object instance = Activator.CreateInstance(tItem);
object[] parameters = new object[1];//定义参数类型
parameters[0] = (object)"aaa";//设置Show方法的参数值
Console.WriteLine(mShow.Invoke(instance, parameters));//打印Show方法的输出结果
}
}
}
Console.ReadLine();
}