从单个通用覆盖样式类实例化多个类

时间:2013-04-19 20:51:48

标签: c# class interface instantiation

我正在寻找一种能够实例化具有相同方法的多个类的方法。

希望做一些我可以将类的名称作为字符串传递的东西。这是我到目前为止编译时它不会运行,因为我没有正确地实例化类。

我正在做这样的事情,但我知道我错过了什么。如果有人可以提供帮助,我会很感激。

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);
   }
}

file1:classProccessor.cs

public interface classProccessor{
    public void myMethod(string st1, list<string> mysts);
}

file2:myClass1.cs

public class myclass1 : classProccessor{ 
    public void myMethod(string st1, list<string> mysts){
      //do something;
    }
}

file3:myClass2.cs

public class myclass2 : classProccessor{ 
    void myMethod(string st1, list<string> mysts){
        // do something different;
    }
}

如何通过使用接口使用类的字符串名称创建类的新实例?我知道我必须遗漏一些简单的东西。

1 个答案:

答案 0 :(得分:0)

接口不会自动发生 您需要在每个类中显式实现接口:

public clas MyClass1 : IClassProcessor