Создание WebControls из полного пути (имя сборки?)
У меня есть веб-страница в ASP.NET 3.5, которая будет динамически создавать веб-элементы управления. WebControls, которые он будет создавать, будут известны по их полному пути (то есть - System.Web.UI.WebControls.whothing). Причина этого в том, что я разрешаю пользователю решать, какие элементы управления будут отображаться на веб-странице. Конечно, тут сложнее, но это в двух словах.
Проще говоря - как мне создать WebControl на веб-странице по ее полному пути?
Я понимаю, что ответ, вероятно, в конечном итоге будет использовать отражение, но у меня мало опыта в использовании отражения, и я не хочу стрелять себе в ногу, совершая ошибку новичка.
2 ответа
Попробуйте назвать так: 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
и использовать его в качестве шаблона
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );
где имя - строка полностью определенного типа