你的问题是反射的典型应用方式之一,通过类型字符串创建该类型的对象。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.MemoryMappedFiles;
using System.IO;
using System.Reflection;
namespace Memshare
{
class MyClass
{
public string A { get; set; }
public string B { get; set; }
public override string ToString()
{
return A + " " + B;
}
}
class Program
{
static void Main(string[] args)
{
// 加载程序集方法1
Assembly assembly = typeof(Program).Assembly;
// 加载程序集方法2
// assembly = Assembly.Load("Memshare");
//创建对象方法1
MyClass myClass = (MyClass)assembly.CreateInstance("Memshare.MyClass");
// 创建对象方法2
// myClass = (MyClass)Activator.CreateInstance(Type.GetType("Memshare.MyClass"));
myClass.A = "hello";
myClass.B = "world";
Console.WriteLine(myClass);
Console.Read();
}
}
}