2015-08-18 106 views
-1

我想通過使用Activator類以圖形方式創建接口對象的實例。 下面是它實現了接口使用程序集名稱和類名稱動態創建類型實例

 namespace ReportService.ReportWriters 
    { 
     class ExcelWriter : IReportWriter 
     { 


     } 

} 

我嘗試下面的代碼類

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

上面的代碼不working.Can任何人幫助我這個..

+0

你能評論爲什麼你決定將參數傳遞給'CreateInstanceFrom'的方式顯示在你的示例?它有點不清楚你從MSDN上的文章'CreateInstanceFrom'無法理解什麼。 –

+0

所以你的意思應該是相反的順序? –

回答

0

你有參數順序不正確,您需要使用完全限定的類型名稱和DLL文件的路徑。

MSDN有這個簽名CreateInstanceFrom

public static ObjectHandle CreateInstanceFrom(
string assemblyFile, 
string typeName) 

所以,你的代碼應該是這樣的:

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

你也可能要使用「爲」做反思時,投給一個安全的投。

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