GERAR CLASSE CTE

KERPLUNK 31/08/2017 11:06:59
#476177
Tente buscar o tipo da instância:

Dim serializar As New XmlSerializer(ctexml.GetType)
FUTURA 31/08/2017 12:07:56
#476178
Assim deu certo, e ai caiu nos nullexception que você havia dito. Fazendo as declarações deu certo. Mas algumas é chato de achar não ?, tipo a [Ô]TEndeEmi[Ô] , ja não da sequência ao tcteinfcte

Dim ctexml As New TCTe()
ctexml.infCte = New TCTeInfCte()
ctexml.infCte.ide = New TCTeInfCteIde()
ctexml.infCte.emit = New TCTeInfCteEmit()
ctexml.infCte.emit.enderEmit = New TEndeEmi()

ctexml.infCte.ide.cCT = [Ô]1[Ô]
ctexml.infCte.ide.CFOP = [Ô]5252[Ô]
ctexml.infCte.versao = [Ô]1.0[Ô]
ctexml.infCte.emit.CNPJ = [Ô]12563578965412[Ô]
ctexml.infCte.emit.IE = [Ô]0000000000[Ô]
ctexml.infCte.emit.enderEmit.CEP = [Ô]13660000[Ô]
[ô]Dim serializar As New XmlSerializer(TypeOf (TCTe) )
[ô]Dim serializar As New XmlSerializer(TCTe.GetType)
Dim serializar As New XmlSerializer(ctexml.GetType)
Dim novoxml As New FileStream([Ô]c:\\ctenovo.xml[Ô], FileMode.CreateNew)
serializar.Serialize(novoxml, ctexml)

Agora, fiquei em dúvida do seguinte, haja declarações não ?, sera que isso compensa ?, acho que estou acostumado a fazer do outro modo, que achei trabalhoso. Uma outra dúvida, caso surjam novas tags em versão futura, seria só gerar novamente a classe e substituir a atual, isso não causa nenhum dano ao projeto ?
KERPLUNK 31/08/2017 13:21:31
#476179
O tipo à ser instanciado é geralmente sugerido pelo próprio Visual Studio. Basta passar o mouse por cima da propriedade que você vai ver de que tipo é, e é este tipo que você vai usar para instanciar.

Quanto às suas dúvidas: Caso o layout mude radicalmente, sim você terá que mudar alguma coisa no seu projeto. Mas isso não ocorre com frequência. O mais comum são algumas tags e/ou tipos adicionados e basta gerar novamente o assembly.
MRSILVA 31/08/2017 14:25:26
#476182
Olá Pessoal.
Muito interessante esse tópico!
Kerplunk sei que você já passou tudo pronto, mas queria aprender a gerar a classe para futuras utilizações, estou com dificuldade em dar o comando no prompt do Visual Studio, no meu caso os arquivos estão no meu diretorio [Ô]c:[Ô] como seria o comando para gerar a classe, não estou conseguindo fazer apesar de você já ter colocado o comando necessário.
Meu prompt abre com a seguinte linha:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>

Desde já agradeço quem puder ajudar.
FUTURA 31/08/2017 14:26:09
#476183
ok, vou dar u trampo aqui, pra tentar abastecer um xml completo...
KERPLUNK 31/08/2017 14:28:02
#476184
MRSILVA, você digita XSD e dá enter. Se aparecer a ajuda do XSD, ele está no path(variável de ambiente). Basta ir até a pasta onde seus XSD estão e executar o comando que passei.
MRSILVA 31/08/2017 15:06:53
#476186
Kerplunk obrigado pela ajuda.

Está dando a seguinte mensagem quando do enter.

[ô]XSD[ô] não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

Desde já agradeço.
KERPLUNK 31/08/2017 15:52:56
#476189
Nesse caso, o XSD não está no path. Que versão de Visual Studio você tem? Geralmente, existe um [Ô]Developer Command Prompt[Ô] na mesma pasta do Visual Studio, ele é carregado já modificando a variável PATH, contendo tudo que você precisa para as ferramentas de linha de comando.
MRSILVA 31/08/2017 16:14:47
#476191
Fiz outras tentativas sem sucesso.

Meu visual Studio é 2015 Community.

Desde já agradeço.
KERPLUNK 31/08/2017 16:43:14
#476193
O que você tentou?
Página 5 de 7 [64 registro(s)]
Tópico encerrado , respostas não são mais permitidas