none
PropertyInfo.GetValue() retorna nulo e da ERRO RRS feed

  • Pergunta

  • Bom dia pessoal,

    estou usando reflexão para percorrer campos de uma tabela com EF 4. Preciso verificar se determinado campo possui valor ou está em branco, quando este campo está em branco está me retornando um erro, segue o código usado:

                            foreach (PropertyInfo propriedade in propriedades)
                            {
                                if (propriedade.Name.Contains("TAMANHO_"))
                                {
                                    //System.Windows.Forms.MessageBox.Show(propriedade.GetValue(recTamanho, null).ToString());
                                    //Pega o primeiro campo branco ou nulo disponível para gravar
                                    if (propriedade.GetValue(recTamanho, null) == null)
                                    {
                                        propriedade.SetValue(recTamanho, valTaman, null);
                                        break;
                                    }
                                }
                            }
    

    No trecho de código onde eu testo se meu GetValue == null ele dispara o erro:

    "Método não-estático requer um destino."

    Alguma dica?

    Léo


    Leonardo Jacques da Silva Desenvolvedor .net

    segunda-feira, 17 de setembro de 2012 13:53

Todas as Respostas

  • você tá passando um parâmetro errado pro getvalue... nesse caso é pra passar o próprio objeto "propriedade"...

    getvalue é um método do propertyinfo e não do objeto em si, então ele precisa saber a qual objeto você está se referindo pra te dar o valor.

     foreach (PropertyInfo propriedade in propriedades)
                            {
                                if (propriedade.Name.Contains("TAMANHO_"))
                                {
                                    //System.Windows.Forms.MessageBox.Show(propriedade.GetValue(recTamanho, null).ToString());
                                    //Pega o primeiro campo branco ou nulo disponível para gravar
                                    if (propriedade.GetValue(propriedade, null) == null)
                                    {
                                        propriedade.SetValue(propriedade, valTaman, null);
                                        break;
                                    }
                                }
                            }

    vai ficar assim

    quarta-feira, 19 de setembro de 2012 13:05