GERAR CLASSE CTE

KERPLUNK 30/08/2017 11:45:24
#476116
Explicando:

Dim ser As New XmlSerializer(GetType(nfepro.nfeProc))

Essa linha, instancia um a classe XmlSerializer, que é a classe responsável por converter uma instância do tipo [Ô]nfepro.nfeProc[Ô] em texto XML ou vice-versa. O método [Ô]Deserialize[Ô], deve receber como parâmetro uma instância de [Ô]nfepro.nfeProc[Ô] para funcionar. O mesmo para o método [Ô]Serialize[Ô]


Dim textReader As TextReader = DirectCast(New StreamReader(txtArquivo.Text), TextReader)

Essa linha, instancia um TextReader, lendo um arquivo cujo caminho está na propriedade [Ô]Text[Ô] do objeto [Ô]txtArquivo[Ô]


Dim reader As New XmlTextReader(textReader)

Essa linha, instancia um objeto XmlTextReader, recebendo como parâmetro o objeto TextReader genérico da linha acima dessa.


reader.Read()

Essa linha, faz instrui o objeto reader, que é instância de XmlTextReader à ler o arquivo fisicamente. Este passo é necessário, pois o passo seguinte precisa dos dados já lidos


Dim nota As NFePro.nfeProc = DirectCast(ser.Deserialize(reader), NFePro.nfeProc)

Essa linha, instancia um objeto [Ô]NFePro.nfeProc[Ô], diretamente desserializando o objeto [Ô]reader[Ô] em um tipo [Ô]NFePro.nfeProc[Ô]

Após isso tudo, o objeto [Ô]nota[Ô] conterá os dados provenientes do arquivo e você pode fazer com ele o que quiser. O que você não está conseguindo é entender que os assemblies que coloquei aqui nesse tópico são diferentes dos que você tem no seu projeto, tanto em nomes de classes como de namespaces. Você precisa passar esses nomes para seu objeto XmlSerializer.
JOHNSTEVE 30/08/2017 13:04:43
#476118
Kerplunk, ai é q ta a dificuldade, nessa linha

  Dim ser As New XmlSerializer(GetType(nfepro.nfeProc)) 


essa parte aqui nfepro.nfeProc , não consta no XSD que vc postou aqui nesse tópico.
por isso q to com dificuldade em entender essa linha.. somente ela..

  Dim ser As New XmlSerializer(GetType(  ????????  )) 


KERPLUNK 30/08/2017 13:14:22
#476119
Você não viu o assembly? A classe lá se chama [Ô]TNFe[Ô]. Eu estou achando que você ainda não entendeu OOP...
JOHNSTEVE 30/08/2017 13:17:14
#476120
Citação:

:
Você não viu o assembly? A classe lá se chama [Ô]TNFe[Ô]. Eu estou achando que você ainda não entendeu OOP...



o Assembly vi sim. ja tentei chamar la no Método.

  Dim ser As New XmlSerializer(GetType(TNFe.  ?????)) 

KERPLUNK 30/08/2017 13:21:23
#476121
TNFe é o tipo à ser passado.
JOHNSTEVE 30/08/2017 13:43:37
#476122
Citação:

:
TNFe é o tipo à ser passado.



Fiz assim Kerplunk, da erro.

  Dim ser As New XmlSerializer(GetType(TNFe))
Dim textReader As TextReader = DirectCast(New StreamReader(txtArquivo.Text), TextReader)
Dim reader As New XmlTextReader(textReader)
reader.Read()

Dim nota As TNFe = DirectCast(ser.Deserialize(reader), TNFe)

txt_Numero_NotaFiscal.Text = nota.infNFe.ide.nNF
txt_Serie.Text = nota.infNFe.ide.serie
KERPLUNK 30/08/2017 13:48:49
#476123
Que erro? Onde?
JOHNSTEVE 30/08/2017 13:55:32
#476124
Citação:

:
Que erro? Onde?



conforme o Print. para nessa linha...

Erro no documento XML (1, 41).
JOHNSTEVE 30/08/2017 14:00:57
#476125
Kerplunk, é mais ou menos isso?

desculpa por sair com outro assunto no Tópico, pois como se referia a classes do CT-e, e por se tratar do XSD. acabei entrando no assunto.
KERPLUNK 30/08/2017 14:05:31
#476127
Seu código está ok, o que estou achando é que seu documento XML não é da mesma estrutura que as classes. O que está nesse caracter que ele está mostrando no erro?
Página 2 de 7 [64 registro(s)]
Tópico encerrado , respostas não são mais permitidas