在C#中,CreateInstance
方法属于System.Reflection
命名空间下的Type
类。它用于通过反射动态创建一个类的实例。CreateInstance
方法可以接受以下参数:
- 类型名称(字符串):要创建的类的完全限定名(包括命名空间和程序集)。
- 参数列表(对象数组):传递给构造函数的参数。如果构造函数没有参数,可以传递一个空数组。
- 是否绑定到程序集(布尔值):指示是否将类型绑定到特定的程序集。默认值为
false
。 - 是否忽略访问修饰符(布尔值):指示是否忽略类型的访问修饰符(如
private
、protected
等)。默认值为false
。
示例:
using System;
using System.Reflection;
namespace ReflectionExample
{
class Program
{
static void Main(string[] args)
{
// 获取要创建的类的类型信息
Type type = Type.GetType("ReflectionExample.MyClass");
// 使用CreateInstance方法创建类的实例
object instance = type.CreateInstance();
// 调用实例的方法
MethodInfo method = type.GetMethod("MyMethod");
method.Invoke(instance, new object[] { });
}
}
class MyClass
{
public void MyMethod()
{
Console.WriteLine("Hello, World!");
}
}
}
在这个例子中,我们使用CreateInstance
方法创建了一个MyClass
的实例,并调用了其MyMethod
方法。请注意,为了使这个例子正常工作,您需要将ReflectionExample
程序集添加到您的项目中。