谢谢!例如:有一个字符串"AdminLoad(1,1,2)"里面有类我想转化成实例类:AdminLoad(1,1,2)不知道怎么操作,请赐教!

解决方案 »

  1.   

    意思还不是太明白,用CodeDOM,CSharpCodeProvider可以动态的生成代码、编译代码,
      

  2.   

    有这样的类在字符串中"AdminLoad(1,1,2)",现在我在的程序有这样的一个类函数,AdminLoad(1,1,2)我想将字符串中的类可以转化成直接调用函数了.
      

  3.   

    用反射可以实现,先把类所在的assembly找到,然后用反射创建类的实例,就可以调用了:
    string str = "AdminLoad(1,1,2)";
    string methodName = str.Substring(0, str.IndexOf("("));
    string[] params = str.Substring(str.IndexOf("(") + 1, str.IndexOf(")") - str.IndexOf("(") - 1).Split(",");Assembly assembly = Assembly.LoadFile(AdminLoad方法所在的assembly的文件名);
    Type mytype = assembly.GetType(AdminLoad方法所在的类的名字);
    object myobject = Activator.CreateInstance(mytype);
    mytype.InvokeMember(methodName,BindingFlags.InvokeMethod,null,myobject,new object[]{Int32.Parse(params[0]), Int32.Parse(params[1]), Int32.Parse(params[2])});
      

  4.   

    一般都用active.createinstance方法
    去msdn看看这个方法吧