Jump to content
rtavix

Message "Operação inválida em um objeto fechado" string

Recommended Posts

Amigos, ao compilar minha aplicação me deparei com o seguinte problema:

Como posso solucionar isso?

'ImportComprovante.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\bin\Debug\ImportComprovante.exe'. Symbols loaded. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Oracle.ManagedDataAccess\v4.0_4.122.1.0__89b483f429c47342\Oracle.ManagedDataAccess.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\mscorlib.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Xml.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.Wrapper.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. The thread 0x4a14 has exited with code 0 (0x0). The thread 0x1b10 has exited with code 0 (0x0). The thread 0x7324 has exited with code 0 (0x0). The thread 0x8334 has exited with code 0 (0x0). 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.resources.dll'. Module was built without symbols. 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Core.resources.dll'. Module was built without symbols. The thread 0x23f4 has exited with code 0 (0x0). Exception thrown: 'System.InvalidOperationException' in Oracle.ManagedDataAccess.dll The thread 0xadd4 has exited with code 0 (0x0). Exception thrown: 'System.InvalidOperationException' in ImportComprovante.exe Exception thrown: 'System.InvalidOperationException' in ImportComprovante.exe 'ImportComprovante.exe' (CLR v4.0.30319: ImportComprovante.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Transactions.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Transactions.resources.dll'. Module was built without symbols. System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledExceção não tratadaImportComprovante.exeSystem.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Operação inválida em um objeto fechado em Oracle.ManagedDataAccess.Client.OracleDataReader.IsDBNull(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(String columnName) em ImportComprovante.LeituraTxt.GetCodProcInter(String CodBarra) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220 em ImportComprovante.LeituraTxt.ProcessaArquivo(String FullPathFile, String FileName) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 192 em ImportComprovante.LeituraTxt.VerificarHorario() na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 52 em System.Threading.ThreadHelper.ThreadStart_Context(Object state) em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart()System.InvalidOperationException: Operação inválida em um objeto fechado em Oracle.ManagedDataAccess.Client.OracleDataReader.IsDBNull(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(Int32 i) em Oracle.ManagedDataAccess.Client.OracleDataReader.get_Item(String columnName) em ImportComprovante.LeituraTxt.GetCodProcInter(String CodBarra) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220 em ImportComprovante.LeituraTxt.ProcessaArquivo(String FullPathFile, String FileName) na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 192 em ImportComprovante.LeituraTxt.VerificarHorario() na C:\Users\robson.amaral\source\repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 52 em System.Threading.ThreadHelper.ThreadStart_Context(Object state) em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart() An unhandled exception of type 'System.InvalidOperationException' occurred in ImportComprovante.exe Operação inválida em um objeto fechado

Share this post


Link to post
Share on other sites
Em 25/05/2018 at 08:55, quintelab disse:

Tem certeza que é quando compila ? 

Parece erro quando executa nessa linha: repos\ImportComprovante\ImportComprovante\ImportComprovante\LeituraTxt.cs:linha 220

Opa consegui resolver essa parte mas do nada, deu pau no meu log que mostro para o usuário, esta trazendo de forma desordenado, como eu poderia usar a ordenação da linha para quando mostrar o log, vim os logs ordenados:

 

protected void importar_Click(object sender, EventArgs e)
        {

			DataTable Dados = new DataTable();
			//Aqui uso para pegar o indice da linha pelo Data Table
			Dados.Columns.Add("indice", typeof(int));

                        int i = 1;
                        foreach (DataRow linha in Dados.Rows)
                        {
                            linha["indice"] = i;
                            i++;
                        }

				private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado)
        {
            //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login);
            i = 4;
            i++;
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());

                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
                  
                   if (processo != null)
                    {
                        //se o processo não for nulo busco todos procinter relacionados a ele
                        List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
                        if (listaprocinter.Exists(o => o.Interessado == interessado))
                          
                          	//Aqui eu passo o indice correto, porém não vem em ordem.
                            log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        setProcInter(processo, interessado, linha, i);
                    }

                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
                  }
       }
     }
  }

Como poderia fazer? Só achei estranho porque deu pau nessa parte.

 

Log de Importação:
 

O interessado informado na linha 88 foi adicionado novamente ao processo 0003100-97.2016.8.08.0035 
O interessado informado na linha 148 foi adicionado novamente ao processo 0001818-78.2016.8.08.0017 
O interessado informado na linha 70 foi adicionado novamente ao processo 0001643-45.2017.8.08.0051 
O interessado informado na linha 194 foi adicionado novamente ao processo 0002763-90.2015.8.08.0020 
O interessado informado na linha 145 foi adicionado novamente ao processo 0000237-21.2017.8.08.0008 
O interessado informado na linha 25 foi adicionado novamente ao processo 0002695-18.2012.8.08.0030 
O interessado informado na linha 326 foi adicionado novamente ao processo 0001800-66.2009.8.08.0061 
O interessado informado na linha 376 foi adicionado novamente ao processo 0000646-51.2015.8.08.0045 
O interessado informado na linha 447 foi adicionado novamente ao processo 0003289-74.2017.8.08.0024 
O interessado informado na linha 351 foi adicionado novamente ao processo 0001003-79.2014.8.08.0008 
O interessado informado na linha 567 foi adicionado novamente ao processo 0001608-22.2016.8.08.0051 
O interessado informado na linha 432 foi adicionado novamente ao processo 0000037-54.2017.8.08.0027 
O interessado informado na linha 501 foi adicionado novamente ao processo 0000696-93.2013.8.08.0030 
O interessado informado na linha 551 foi adicionado novamente ao processo 0000403-21.2016.8.08.0030 
O interessado informado na linha 493 foi adicionado novamente ao processo 0001556-71.2016.8.08.0036 
O interessado informado na linha 523 foi adicionado novamente ao processo 0000141-13.2017.8.08.0038 
O interessado informado na linha 375 foi adicionado novamente ao processo 0000403-21.2016.8.08.0030 
O interessado informado na linha 524 foi adicionado novamente ao processo 0003568-52.2016.8.08.0038 

Share this post


Link to post
Share on other sites
5 horas atrás, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Quintelab, bom dia!

 

Tentei implementar a sua sugestão dentro do método da thread:

 

private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado)
        {
            //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login);
            i = 4;
            i++;
            
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());
                
                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
                    
                    List<Processo> listaProcessoExistente = new List<Processo>();
                    Processo processo = null;
                    Interessado interessado = new Interessado();

                    //busca o processo pelo nº judicial anterior ou atual
                    if (!linha.ItemArray[1].ToString().Equals(""))
                        processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString());
                    if (processo == null)
                    {
                        if (!linha.ItemArray[2].ToString().Equals(""))
                            processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString());
                    }

                    //busca o interessado por cpf/cnpj
                    if (linha.ItemArray[7].ToString().Length == 14)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString()));

                    if (linha.ItemArray[7].ToString().Length == 18)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString()));

                    if (processo != null)
                    {
                        
                        //se o processo não for nulo busco todos procinter relacionados a ele
                        List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
                        if (listaprocinter.Exists(o => o.Interessado == interessado))
                            log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        setProcInter(processo, interessado, linha, i);
                    }

                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
  					}
  }

antes do:

 Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());
                
                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
   
   				}
            }

Tentei colocar da seguinte forma como sugerido:

 

dados = dados.OrderBy(dr => dr["indice"]);

porém apareceu a seguinte mensagem:

 

Error    1    'object' does not contain a definition for 'OrderBy' and no extension method 'OrderBy' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)    D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJView\ImportacaoProcessoView\ImportacaoProcesso.aspx.cs    201    25    SDPJView
 

 

Share this post


Link to post
Share on other sites
5 horas atrás, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Eu consigo fazer a ordenação no inicio?

Pois por aqui eu pego o indice do DataTable:

if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);
                        Dados = DadosExcel(Excel);

                        Dados.Columns.Add("indice", typeof(int));
                        
                        int i = 1;
                        foreach (DataRow linha in Dados.Rows)
                        {
                           linha["indice"] = i;
                            i++;
                        }
}

 

Share this post


Link to post
Share on other sites
Em 28/05/2018 at 04:48, quintelab disse:

Vai ter que importar System.Linq

 

Antes do seu foreach:
 


dados = dados.OrderBy(dr => dr["indice"]);

 

Quintelab, essa sua sugestão que você postei no caso tenho que adicionar ela antes do foreach do método de importar ou do método da threading?

Share this post


Link to post
Share on other sites
7 horas atrás, quintelab disse:

Esse erro é por que você não adicionou System.Linq na suas namespace. Você precisa adicionar.

Mas eu tenho o using System.Linq adicionado, mesmo assim aparece aquele erro.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Packman1001
      Olá, senhores, estou com dificuldades em 6 questões.
      Irei mandar uma agora apenas para ver se conseguem me explicar ou criar um código e comentar linha por linha. Tenho dificuldade extrema de entender, mas não tenho vergonha de admitir. Estou correndo atrás do prejuízo e aprendendo da maneira que posso.
      Eis a questão:
      Motivação
      Flavinho acabou de chegar do supermercado com K produtos na sacola, mas perdeu o recibo da compra. Ele está tentando lembrar dos preços de cada um dos produtos e precisa da sua ajuda. Por enquanto ele consegue se lembrar das seguintes informações:
      ·         O valor total da compra foi de R reais;
      ·         Os valores dos produtos eram números inteiros distintos.
      Por exemplo, se R=12 e K=3, temos as seguintes possíveis combinações de preços para os três produtos: {1,2,9}, {1,3,8}, {1,4,7}, {1,5,6}, {2,3,7}, {2,4,6} ou {3,4,5}.
       
      Ação
      Seu programa deve computar a quantidade de possíveis combinações de preços para os K produtos.
       
      Entrada 
      A primeira linha da entrada contém dois inteiros R e K, indicando respectivamente o valor total do recibo e o número de produtos comprados.
       
      Saída
      Imprima uma linha contendo um inteiro representando a quantidade de possíveis combinações de preços para os K produtos.
       
      Restrições
      ·         1 ≤ R ≤ 100
      ·         1 ≤ K ≤ 20
       
      Exemplos

       
      >>
      12 3
      <<
      7
      >>
      10 5
      <<
      0
      >>
      10 2
      <<
      4
       
      Preciso do código que passe nesses casos de testes e que por ventura, me expliquem o que cada linha significa.
      Não tenho muito mais a dizer. Obrigado por vossas atenções, de verdade.
       
       
    • By Leon Martin
      Boa tarde pessoal, preciso de uma ajuda urgente. Vcs tem alguma ideia de como eu faço esse programa? 
       
      Enunciado:
      Na teoria dos sistemas define-se o elemento MINMAX de uma matriz como sendo o maior elemento da linha onde se encontra o menor elemento da matriz. Faça um programa que carregue uma matriz 4 x 7 com números reais, calcule e mostre seu MINMAX e sua posição (linha e coluna).
       
      Exemplo: int MAT[4][7]
      Min elemento da matriz esta na MAT[1][3] = -19 (Linha Posição 1; Coluna Posição 3)
      Max elemento da linha onde esta o min elemento da matriz esta na MAT[1][5] = 101 (Linha Posição 1; Coluna Posição 5)
       
        0
      1
      2
      3
      4
      5
      6
      0
      3
      33
      9
      2
      15
      3
      22
      1
      5
      4
      76
      -19
      93
      101
      32
      2
      3
      -1
      43
      1
      554
      21
      53
      3
      55
      34
      1231
      212
      664
      234
      13413
       
    • By guiarodrigues1
      Alguém poderia me ajudar em como colocar calculo de dilatação linear / superficial / volumétrica e de sólidos no DevC?
      Não estou conseguindo sair do lugar.
       
      Caso alguém queira mais informações segue em anexo link para baixar.
      Grato.
      Baixar PDF.
    • By Neto Dinizz
      Olá Neto Nível: InicianteMINHA CONTA Perfil Minha Assinatura Meus Cursos Favoritos Logout  Indique um amigo Mostrar menu WebAPI CRUD .NET
      11/06/2019
      1
      Entity Framework.NETASP.NET Web APIC#CRUD
      Boa noite,

      Tenho uma aplicação webapi c# utilizando entity framework CRUD, utilizando o models para montar meu json, como no models só trago os campos que vem da tabela, Tenho dúvida em como receber um parâmetro que não existe na minha tabela via parâmetro ex:

      Localhost/api/clientes?id=2&idcat=4&nome=teste

      Onde (nome) seria um parâmetro que não tenho em minha tabela, porém se existir os 2 primeiros parâmetros irei fazer um POST na tabela.

      Muito obrigado
    • By Neto Dinizz
      Bom dia,

      Poderiam me dar uma ajuda por favor,

      Estou com uma dúvida, tenho um método GET que espera o id do cliente pela url http://localhost/api/cliente/(codigo_cliente)
      estou com um problema para acessar um cliente pelo id, através de um select, gostaria de receber o id e fazer um select no banco trazendo os dados do cliente, poderiam me ajudar a incrementar o códido abaixo por favor, segue meu GET:

      // GET: api/Cliente/5
      [ResponseType(typeof(Cliente))]
      public IHttpActionResult GetCliente(int id)
      {
      Cliente cliente = db.Clientes.Find(id);
      if (cliente == null)
      {
      return NotFound();
      }

      return Ok(cliente);
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.