GERAR CLASSE CTE
Explicando:
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[Ô]
Essa linha, instancia um TextReader, lendo um arquivo cujo caminho está na propriedade [Ô]Text[Ô] do objeto [Ô]txtArquivo[Ô]
Essa linha, instancia um objeto XmlTextReader, recebendo como parâmetro o objeto TextReader genérico da linha acima dessa.
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
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.
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.
Kerplunk, ai é q ta a dificuldade, nessa linha
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(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( ???????? ))
Você não viu o assembly? A classe lá se chama [Ô]TNFe[Ô]. Eu estou achando que você ainda não entendeu OOP...
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. ?????))
TNFe é o tipo à ser passado.
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
Que erro? Onde?
Citação::
Que erro? Onde?
conforme o Print. para nessa linha...
Erro no documento XML (1, 41).
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.
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.
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?
Tópico encerrado , respostas não são mais permitidas