Создание WebControls из полного пути (имя сборки?) - PullRequest
1 голос
/ 02 марта 2010

У меня есть веб-страница в ASP.NET 3.5, которая будет динамически создавать веб-элементы управления. WebControls, которые он будет создавать, будут известны по их полному пути (то есть - System.Web.UI.WebControls.whwhat). Причина этого в том, что я разрешаю пользователю решать, какие элементы управления будут отображаться на веб-странице. Конечно, здесь сложнее, но это в двух словах.

Проще говоря - как мне создать WebControl на веб-странице по его полному пути?

Я понимаю, что ответ, вероятно, в конечном итоге будет использовать отражение, но у меня мало опыта в использовании отражения, и я не хочу стрелять себе в ногу, совершив ошибку новичка.

Ответы [ 2 ]

3 голосов
/ 02 марта 2010

попробуй назвать так: Activator.CreateInstance(Type.GetType("TypeName"));

где TypeName - полное имя , включая сборку. в моем случае это выглядело так:

Activator.CreateInstance(Type.GetType("System.Web.UI.WebControls.Label, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"));

чтобы быть уверенным в использовании полного имени в вашем случае, попробуйте вывести typeof(System.Web.UI.WebControls.Label).FullName и использовать его в качестве шаблона

1 голос
/ 02 марта 2010
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );

где имя - строка полностью определенного типа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...