Criando WebControls a partir do caminho totalmente qualificado (nome da montagem?)
-
23-09-2019 - |
Pergunta
Eu tenho uma página da web no ASP.NET 3.5 que criará o WebControls dinamicamente. Os controladores da Web que estarão criando serão conhecidos por seu caminho totalmente qualificado (ou seja, System.Web.ui.webcontrols.whewhver). A razão para isso é porque estou permitindo ao usuário decidir quais controles irão na página da web. Claro, há mais complexidade do que isso, mas é isso em poucas palavras.
Simplificando - como faço para criar um webcontrol em uma página da web por seu caminho totalmente qualificado?
Sei que a resposta provavelmente acabará usando a reflexão, mas tenho pouca experiência usando reflexão e não quero me atirar no pé cometendo um erro de novato.
Solução
Tente ligar para esta maneira: Activator.CreateInstance(Type.GetType("TypeName"));
onde está o tipo de tipo nome totalmente qualificado, incluindo montagem. No meu caso, parecia desta maneira:
Activator.CreateInstance(Type.GetType("System.Web.UI.WebControls.Label, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"));
Para ter certeza sobre o nome completo no seu caso, tente produzir typeof(System.Web.UI.WebControls.Label).FullName
e use -o como um padrão
Outras dicas
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );
onde o nome é a string do tipo totalmente qualificado