C# Activator.CreateInstance 动态创建类的实例(二)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kernel.Interface { public interface IObjcet { void Put(); void Put(string plus); } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Kernel.Interface; namespace Kernel.SimpleLibrary { public class PlugPut : IObjcet { private string plugName = ""; public string PlugName { get { return plugName; } set { plugName = value; } } public PlugPut() { } public PlugPut(string plusName) { this.PlugName = plusName; } public void Put() { Console.WriteLine("Default plug value is:" + plugName); } public void Put(string plus) { Console.WriteLine("Put plus value is:" + plus); } } }
using Kernel.DriverLibrary; using Kernel.Interface; using Kernel.SimpleLibrary; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.Remoting; using System.Text; using System.Threading.Tasks; namespace Kernel.App { class Program { static void Main(string[] args) { #region //用传递参数来得到一个类的实例 //用Activator.CreateInstance创建默认的不带参数的构造函数 IObjcet obj = (IObjcet)Activator.CreateInstance(
System.Type.GetType("Kernel.SimpleLibrary.PlugPut,Kernel.SimpleLibrary"), null); obj.Put(); obj.Put("plug 1"); //System.Type.GetType(命名空间.类名,程序集) //用Activator.CreateInstance创建另一个带参数构造函数实例 IObjcet obj2 = (IObjcet)System.Activator.CreateInstance(
System.Type.GetType("Kernel.SimpleLibrary.PlugPut,Kernel.SimpleLibrary"),
new string[] { "Hello world!" }); obj2.Put(); obj.Put("plug 2"); #endregion Console.ReadLine(); } } }