Usuário com melhor resposta
Utilizar Reflection em webForms + Invocar extension method com reflection

Pergunta
-
Olá a todos,
tenho 10 dropdownlist em um webform e preciso acessa-los atraves de Reflection, tentei atraves do codigo abaixo e nao obtive sucesso
Type classType = this.GetType(); FieldInfo[] fields = classType.GetFields(); foreach (FieldInfo member in fields) { if (member.FieldType == typeof(System.Web.UI.WebControls.DropDownList)) { // this is where i want to do something like this string myResult = member.Name + " = " + member.GetValue(this); } }
Alguem pode me ajudar se tem como fazer isso utilizando Reflection
programação e banco de dados- Editado Marco Souza sábado, 2 de maio de 2009 20:41
Respostas
-
Olá Pessoal,
Veja se ajudam:
Extension methods and reflection
http://social.msdn.microsoft.com/Forums/pt-BR/vcsharp2008prerelease/thread/4842bf63-aa8b-4f40-9a88-04dfe1e89429
Calling extension method using reflection
http://bytes.com/groups/net-c/755831-calling-extension-method-using-reflection
Simple Reflection Based Assignment Using Extension Methods
http://timrayburn.net/blog/simple-reflection-based-assignment-using-extension-methods/
Abraços,
Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.- Marcado como Resposta Marco Souza domingo, 3 de maio de 2009 07:49
Todas as Respostas
-
Olá Marco,
Veja se esses artigos lhe ajudam:
Praticando com "Reflection" e "Attributes" (WebForms e C#)
http://imasters.uol.com.br/artigo/11739
Praticando com "Reflection" e "Attributes" (WebForms e C#)
http://www.linhadecodigo.com.br/ArtigoImpressao.aspx?id=2236
WebForms Automatic Generation Using Reflection (1)
http://www.codeproject.com/KB/aspnet/WebFormReflectionGen.aspx
WebForms Automatic Generation Using Reflection (2)
http://www.codeproject.com/KB/aspnet/WebFormReflectionGen2.aspx
Abraços,
Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar. -
consegui acessar os campos, passei os dropdownlist de protected para public na classe partial.
como faço para acessar um extension method por reflection no caso preciso acessar esse exemplo aqui
ddlTipoOperacaoId1.PopulaDDL(blMenu.FindListLi(true, "ID", "TIPO"), string.Empty);
programação e banco de dados -
Olá Pessoal,
Veja se ajudam:
Extension methods and reflection
http://social.msdn.microsoft.com/Forums/pt-BR/vcsharp2008prerelease/thread/4842bf63-aa8b-4f40-9a88-04dfe1e89429
Calling extension method using reflection
http://bytes.com/groups/net-c/755831-calling-extension-method-using-reflection
Simple Reflection Based Assignment Using Extension Methods
http://timrayburn.net/blog/simple-reflection-based-assignment-using-extension-methods/
Abraços,
Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.- Marcado como Resposta Marco Souza domingo, 3 de maio de 2009 07:49
-
programação e banco de dados- Editado Marco Souza sábado, 2 de maio de 2009 23:31
-
Type classType = this.GetType();
FieldInfo[] fields = classType.GetFields();
PropertyInfo[] prop = classType.GetProperties();
string myResult = "";
foreach (FieldInfo member in fields)
{
if (member.FieldType == typeof(System.Web.UI.WebControls.DropDownList))
{
MethodInfo methodInfo = typeof(DDL_extensions).GetMethod("PopulaDDL",
BindingFlags.Public | BindingFlags.FlattenHierarchy
| BindingFlags.Static);
TipoOperacao entTipoOperacao = new TipoOperacao();
BLTipoOperacao blMenu = new BLTipoOperacao(entTipoOperacao);
object[] parameters = new object[] { ddlTipoOperacaoId1 , blMenu.FindListLi(true, "ID", "TIPO"), string.Empty };
methodInfo.Invoke(this, parameters);
}
}
como passo o dropdownlist no lugar de ddlTipoOperacaoId1?
programação e banco de dados -
Consegui executar o extension method com reflection
ao inves de
object[] parameters = new object[] { ddlTipoOperacaoId1 , blMenu.FindListLi(true, "ID", "TIPO"), string.Empty };
passei
object[] parameters = new object[] { member.GetValue(this) , blMenu.FindListLi(true, "ID", "TIPO"), string.Empty };
programação e banco de dados