我已經實現了一個'插件'系統,我的應用程序創建了一些類,這些類在運行時實現接口以允許可插入的功能。使用Activator最好的方式來創建具有多個構造函數的類的實例?
我通過在插件程序集中實現指定接口的所有類上使用Activator.CreateInstance來實現此目的。
在我只使用一個實現類的當前時間,併爲它我有兩個構造函數的參數,幷包括那些在Activator.CreateInstance電話:
instanceList.Add((Foo)Activator.CreateInstance(_TypeList[typeKey], new object[] { arg1, arg2 }));
我意識到這可能會導致稍後如果添加了不使用此構造函數簽名的實現,則會出現問題。處理這個問題的最佳情況是什麼?
通過文檔明確地說,構造函數需要使用這個簽名,然後將它包圍在try/catch中?
或者有沒有辦法來調用類的構造函數?記住我必須以某種方式匹配構造函數參數。
或...通過將參數放入靜態類作爲靜態propertys避免構造函數參數?