使用程序集名称和类名称动态创建类型实例

时间:2015-08-18 08:04:36

标签: c# asp.net .net reflection

我想通过使用Activator类来动态创建接口对象的实例。 下面是实现接口的类

make

我试过下面的代码

     namespace ReportService.ReportWriters
    {
        class ExcelWriter : IReportWriter
        {


        }

}

以上代码无效。任何人都可以帮我这个..

1 个答案:

答案 0 :(得分:0)

您的参数顺序不正确,您需要使用完全限定的类型名称和DLL文件的路径。

MSDN具有CreateInstanceFrom

的签名
public static ObjectHandle CreateInstanceFrom(
string assemblyFile,
string typeName )

所以你的代码应该是这样的:

IReportWriter oIreportService = (IReportWriter)Activator.CreateInstanceFrom(PathToReportWritersDll, "ReportService.ReportWriters.ExcelWriter");

此外,您可能希望在进行反射时使用“as”来投射安全演员。

IReportWriter oIreportService = Activator.CreateInstanceFrom(PathToReportWritersDll, "ReportService.ReportWriters.ExcelWriter") as IReportWriter;