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