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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top