none
Obter valor de uma propriedade num objecto do tipo System.__ComObject RRS feed

  • Pergunta

  • Boa tarde Pessoal.
    Ando a trabalhar com System.Reflection e não estou a conseguir obter o valor de uma propriedade quando objecto é do tipo System.ComObject.

    O meu objectivo é:
     obter uma collection
     para cada objecto da collection obter um propriedade (por exemplo o seu id)

    O meu Problema:
     os objectos dentro da collection vem com o tipo System.__ComObject
     por este motivo não é possivel obter a propriedade(id)


    'exemplo de codigo

     'obter collection
     Dim collection As VBA.Collection = myObject.GetCollection()
     
     'para cada elemento da collection obter o valor de uma propriedade
     For Each element In collection

      'obter o valor da propriedade
      Dim obj As Object = GetPropertyByNamedValue(element, "propertyName")
      response.write(obj.ToString) '

     Next
     

    'o metodo GetPropertyByNamedValue() usa System.Reflection
       Private Function GetPropertyByNamedValue(ByVal obj As Object, ByVal PropertyName As String) AS Object
                   
        'o tipo obtido é System.__ComObject
        Dim objType As Type = obj.GetType()

        'não consegue obter a propriedade que existe no objecto
                    Dim prop As PropertyInfo = objType.GetProperty(PropertyName)

           If Not prop Is Nothing Then
                        myValue = prop.GetValue(obj, Nothing)
                    End If

                    Return myValue
     End Function


    Se alguem me poder dar uma dica fico agradecido

    terça-feira, 28 de abril de 2009 16:56