我想創建一個輔助方法,我可以想像創建實例具有類似這樣的簽名:如何創建一個泛型方法的類型和
public static MyHtmlTag GenerateTag<T>(this HtmlHelper htmlHelper, object obj)
{
// how do I create an instance of MyAnchor?
// this returns MyAnchor, which has a MyHtmlTag base
}
當我調用的方法,我想指定一類MyHtmlTag,如MyAnchor,如:
<%= Html.GenerateTag<MyAnchor>(obj) %>
或
<%= Html.GenerateTag<MySpan>(obj) %>
有人能告訴我如何CRE吃了這個方法?
另外,創建我指定的類型的實例涉及什麼? Activator.CreateInstance()
?
感謝
戴夫
有趣。使用Activator.CreateInstance是否需要刪除新的()泛型類型約束?這是一件好事嗎? – spender 2010-03-15 23:44:01
請參閱:http://msdn.microsoft.com/en-us/library/0hcyx2kd.aspx 如果沒有無參數的構造函數,那麼對CreateInstance()的調用將失敗並返回* exception *。我發佈的例子在*編譯時會失敗,並且有一個有用的錯誤,關於傳入不具有無參數構造函數的泛型方法的類型。你選擇哪個「更好」。 –
Pete
2010-03-16 00:16:00