Я хочу, чтобы создать вспомогательный метод, который я могу себе представить, есть подпись, подобную этой:Как создать универсальный метод и создать экземпляр типа
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) %>
Может кто-то показать мне, как созд съел этот метод?
Кроме того, что связано с созданием экземпляра указанного типа? Activator.CreateInstance()
?
Благодаря
Dave
Интересно. Использует ли Activator.CreateInstance удаление необходимости() общего типа ограничения? Это хорошо? – spender
См. Http://msdn.microsoft.com/en-us/library/0hcyx2kd.aspx Вызов CreateInstance() завершится с * исключением *, если нет конструктора без параметров. Пример, который я опубликовал, не будет выполнен в * время компиляции * с полезной ошибкой в отношении типа, переданного в общий метод, не имеющего конструктора без параметров. Вы берете свой выбор, для которого «лучше». –
Pete