我正在寻找一种能够实例化具有相同方法的多个类的方法。
想做一些我可以将类的名称作为字符串传递的事情。到目前为止,这是我在编译时所拥有的,因为我没有正确实例化类,所以它不会运行。
我正在做这样的事情,但我知道我错过了一些东西。如果有人可以提供帮助,我将不胜感激。
public class useMyClass{
public runMyClass(string st1, list<string> mysts, string myClass){
classProcessor cp = new myClass1(); // this works
classProcessor cp = new myClass2(); // this works
// Here I just want to be able to do using the string variable myClass (myClass1 or myClass2 ) could be the string value
//classProcessor cp = new Class(myClass);
// This does not work always null
classProcessor cp = (classProcessor)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(myClass);
cp.myMethod(st1,mysts);
}
}
文件 1:classProcessor.cs
public interface classProccessor{
public void myMethod(string st1, list<string> mysts);
}
文件 2:myClass1.cs
public class myclass1 : classProccessor{
public void myMethod(string st1, list<string> mysts){
//do something;
}
}
文件 3:myClass2.cs
public class myclass2 : classProccessor{
void myMethod(string st1, list<string> mysts){
// do something different;
}
}
如何通过接口使用类的字符串名称创建类的新实例?我知道我一定错过了一些简单的东西。