欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#如何根据类的名词创建类的实例

程序员文章站 2022-04-08 20:46:53
这个大概分为两种情况:1-在同一程序集访问该类;2-在不同的程序集访问 A:同一程序集,使用微软的创建对象的类:System.Activator: 先通过类名,获取到类型,在使用用于创建本地或远程对象的Activator类创建类型的实例: B:不同的程序集(同一程序集也可用):微软的程序集抽象类提供 ......

这个大概分为两种情况:1-在同一程序集访问该类;2-在不同的程序集访问

 

a:同一程序集,使用微软的创建对象的类:system.activator:

先通过类名,获取到类型,在使用用于创建本地或远程对象的activator类创建类型的实例:

// 命名空间+类名
string strclass = "tlz.com.website.t.webapi.controllers.controllernamecontroller";
type type = type.gettype(strclass);
// 创建实例
object obj = system.activator.createinstance(type);

 

b:不同的程序集(同一程序集也可用):微软的程序集抽象类提供的方法创建

获取指定类所在的程序集:

  system.reflection.assembly.load("程序集名称");  

  或

  system.reflection.assembly.loadfile("程序集文件-dll的绝对路径");

再通过程序集的抽象方法创建实例:createinstance(string typename) 

system.reflection.assembly assembly = system.reflection.assembly.load("datacommon");
//创建实例
object obj=assembly.createinstance("类名");