怎样通过System.Reflection创建实例

avatar
作者
筋斗云
阅读量:0

在C#中,使用System.Reflection类可以动态地创建对象实例。以下是一个简单的示例,展示了如何使用反射来创建一个类的实例:

  1. 首先,确保你有一个要实例化的类。例如,我们有一个名为MyClass的简单类:
public class MyClass {     public string Message { get; set; }      public MyClass(string message)     {         Message = message;     } } 
  1. 接下来,使用System.Reflection.Assembly类加载包含该类的程序集。你可以使用Assembly.LoadFrom方法或Assembly.LoadFile方法来实现这一点。这里,我们将使用Assembly.LoadFrom方法:
Assembly assembly = Assembly.LoadFrom("YourAssemblyName"); // 替换为你的程序集名称 

注意:YourAssemblyName应替换为包含MyClass的程序集的实际名称。 3. 使用assembly.GetType()方法获取MyClass类型的Type对象:

Type myClassType = assembly.GetType("MyNamespace.MyClass"); // 替换为你的命名空间和类名 

注意:MyNamespace应替换为包含MyClass的类的实际命名空间。 4. 使用Type.GetConstructor()方法获取MyClass的构造函数。你可以根据需要选择构造函数,这里我们将使用无参数的构造函数:

ConstructorInfo constructor = myClassType.GetConstructor(); 
  1. 使用ConstructorInfo.Invoke()方法创建MyClass的实例:
object instance = constructor.Invoke(null); // 无参数构造函数,因此传递null 

现在,instance变量包含了一个MyClass的实例。你可以像使用任何其他对象一样使用它,例如调用其属性和方法:

string message = (string)instance.GetType().GetProperty("Message").GetValue(instance); Console.WriteLine(message); 

这将输出MyClass实例的Message属性值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!