我建立一個小的應用程序與南希南希和抽象基類模塊/幻影創建類的實例
我想有一種基類,其他模塊可以繼承。
見下文(是有原因的,這是不是一個抽象類,我將在下面解釋)
public class ImportModule<T> : NancyModule
{
protected ImportModule()
: this(typeof(T).Name.ToLower())
{
Get["/"] = _ => "need to select an action - xxx";
Get["/importnew"] = _ => ImportNew(); //note - method omitted for brevity
}
}
當我運行我的應用程序,我得到
無法解析類型: My.NameSpace.TypedImporter`1
一點題外話,如果ImportModule
類是抽象的,這不會發生
確定 -
現在,我可以有一類這樣的:
public class MyCustomImporter : ImportModule<MyCustomType>
{
//overrides....
}
但是,在其他地方,在 「DefaultImportModule」 我有以下幾點:
var importerModule = Activator.CreateInstance(typeof(ImportModule<>).MakeGenericType(type));
所以我需要能夠創建一種類型的導入器,基於在
中通過的類型(基本上,如果用戶點擊url/customer,它會像這樣做的類相同)
public class CustomerImporter : ImporterModule<Customer>
{
}
所以,當我看到它,我有兩個選擇:
1)停止南希試圖映射我ImportModule
2)實例化一個「幻象類」,從ImportModule繼承並ImportModule抽象再次