Erro em Reflection

399 views
Skip to first unread message

Ronan Muller Marques Mota

unread,
Aug 17, 2011, 5:28:34 PM8/17/11
to dotn...@googlegroups.com, CSharp...@yahoogrupos.com.br, codifica...@yahoogrupos.com.br
Pessoal

Alguém sabe me dizer pq dá sempre o erro "Objeto não coincide com o tipo de destino" nessa minha tentativa de pegar o valor de uma propriedade utilizando reflection?

Obs: o parâmetro collumnName é o nome da propriedade obviamente, e no caso, e este metodo está no objeto (this). Outra questão.. a propriedade eu consigo recuperar.. o problema está no GetValue...


         public object GetCollumnValue(string collumnName)
        {
            Type ObjectType = this.GetType();           
            PropertyInfo pinfo = ObjectType.GetProperty(collumnName);
            object value = pinfo.GetValue(ObjectType, null);
            
            return value;
        }


vlw


Ronan

Rubem Nascimento da Rocha

unread,
Aug 17, 2011, 5:36:03 PM8/17/11
to dotn...@googlegroups.com
Penso que vc tem que fazer isso pra obter o valor da propriedade a
partir de uma instância de um tipo, e não a partir da declaração de
tipo, como vc está fazendo. Esse é o erro.

Sds.

Em 17 de agosto de 2011 17:28, Ronan Muller Marques Mota
<ronan...@ig.com.br> escreveu:

> --
> ==============================
> Comunidade de desenvolvedores Dot Net no Brasil
>
> WebSite: www.dotnetbr.com
>
> E-mail do Grupo: dotn...@googlegroups.com
> ==============================
>

Ronan Muller Marques Mota

unread,
Aug 17, 2011, 5:40:54 PM8/17/11
to dotn...@googlegroups.com
Cara, confesso que não entendi o que vc quis dizer.. em qual trecho desse código aí vc identificou que eu não estou instanciando um objeto para depois pegar o valor da propriedade?

Ricardo Noronha de Menezes

unread,
Aug 17, 2011, 5:49:20 PM8/17/11
to dotn...@googlegroups.com
-> Object obj = new obj();
Type tipo = obj.GetType();
PropertyInfo info = tipo.GetProperty(NomePropriedade);
-> Object Valor = info.GetValue(obj, null)


De: Ronan Muller Marques Mota <ronan...@ig.com.br>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 17 de Agosto de 2011 18:40
Assunto: Re: [.Net - BR] Erro em Reflection

Ronan Muller Marques Mota

unread,
Aug 17, 2011, 5:53:14 PM8/17/11
to dotn...@googlegroups.com
Entendi.... hum.. faz sentido pelo fato deste objeto, na verdade, está recebendo uma atribuição de uma session.. com seu especifico cast... vou verificar isso...

vlw

Ronan

Ronan Muller Marques Mota

unread,
Aug 17, 2011, 5:56:10 PM8/17/11
to dotn...@googlegroups.com
Na verdade é uma listagem e eu faço um foreach dentro dessa listagem e pra cada objeto eu tento recuperar as informações usando reflection.. será que isso é possível. já que esta listagem são varias instancias do mesmo objeto?

Ricardo Noronha de Menezes

unread,
Aug 17, 2011, 6:03:11 PM8/17/11
to dotn...@googlegroups.com
Recupera o tipo só uma vez, então usa a instância específica somente no GetValue.


De: Ronan Muller Marques Mota <ronan...@ig.com.br>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 17 de Agosto de 2011 18:56

Ronan Muller Marques Mota

unread,
Aug 17, 2011, 10:22:01 PM8/17/11
to dotn...@googlegroups.com
Hum deixa eu ver se entendi..

o caso é o seguinte.. eu tenho uma list<objetoqualquer>, onde cada instancia desse objeto qualquer tem propriedades que eu preciso acessar usando o reflection. Eu coloquei a chamada pro metodo abaixo dentro do loop que roda essa lista. e esse método (GetCollumnValue) esta dentro da classe objetoqualquer... ou seja.. foreach (objeto obj in objetoqualquer) { var value = obj.GetCollumnValue(prop) }


 public object GetCollumnValue(string collumnName)
>         {
>             Type ObjectType = this.GetType();
>             PropertyInfo pinfo = ObjectType.GetProperty(
collumnName);
>             object value = pinfo.GetValue(ObjectType, null);
>
>             return value;
>         }


O que eu tiro de dentro dele?


Juan Lopes

unread,
Aug 17, 2011, 11:34:15 PM8/17/11
to dotn...@googlegroups.com
Um aviso: se você está usando reflection pra isso, está fazendo m#rda. Mas ai está o seu erro.

        public object GetCollumnValue(string collumnName)
        {
            Type ObjectType = this.GetType();           
            PropertyInfo pinfo = ObjectType.GetProperty(collumnName);
            object value = pinfo.GetValue(this, null);
            
            return value;
        }

2011/8/17 Ronan Muller Marques Mota <ronan...@ig.com.br>
Reply all
Reply to author
Forward
0 new messages