REFLECTION / EXPRESSAO LAMBDA QUAL A SOLUCAO IDEAL
Kerplunk, eu já havia tentado utilizar a conversão do developerfusion.com, mas não funcionou...
Estamos quase lá.
Consegui fazer o que desejo, talvez não seja a forma correta, mas já considero um progresso de 80% . Com a ajuda do amigo OCELOT que nos deu a luz para saber que possÃvel buscar [Ô]SEM LOOP[Ô] qual propriedade em uma classe foi setada.
Muito útil para saber qual ICMS foi definido para o produto, uma vez que cada produto tem apenas um icms, e na classe ICMS temos 20 propriedades, e que sempre retorna apenas uma propriedade com valor, para cada item da nota.
Abaixo o codigo em uma unica expressão.
O codigo acima esta dentro de um laço que percorre os itens da NFe.
Consegui fazer o que desejo, talvez não seja a forma correta, mas já considero um progresso de 80% . Com a ajuda do amigo OCELOT que nos deu a luz para saber que possÃvel buscar [Ô]SEM LOOP[Ô] qual propriedade em uma classe foi setada.
Muito útil para saber qual ICMS foi definido para o produto, uma vez que cada produto tem apenas um icms, e na classe ICMS temos 20 propriedades, e que sempre retorna apenas uma propriedade com valor, para cada item da nota.
Abaixo o codigo em uma unica expressão.
Dim ixms As ICMS
ixms = ImportaNFE.infNFE.Det.Item(i).Imposto.Icms
Dim icmsAtribuido As Object = (From prop In ixms.GetType().GetProperties(BindingFlags.Instance Or BindingFlags.Public) Where prop.GetValue(ixms, Nothing) IsNot Nothing).Single()
O codigo acima esta dentro de um laço que percorre os itens da NFe.
Citação:Consegui fazer o que desejo, talvez não seja a forma correta, mas já considero um progresso de 80%
Falta os 20%, que seria converter a variavel obtida, ou utilizar o directcast para obeter os valores setados.
Se utilizar o DirectCast ficaria assim :
DirectCast(xicms,ICMSSN202).CSOSN
Porém ficaria totalmente fora do meu objetivo que é não informar qual o tipo do icms.
A pergunta é : Tem como obter o valor das propriedades sem informar o tipo de icms ????
Tópico encerrado , respostas não são mais permitidas