Ir para conteúdo
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

Compartilhar este post


Link para o post
Compartilhar em outros 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 

Compartilhar este post


Link para o post
Compartilhar em outros 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
 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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++;
                        }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jonathacsantos
      Boa tarde, sou novo na programação, comecei por conta própria e agora estou com um pequeno problema, meu programa depende de uma pasta criada pra executar um .exe que fica dentro de uma outra pasta, sendo que eu preciso que ele leia o .exe independente de onde ele fica instalado, vou mostrar uma parte do código para tentar explicar 
      private void AcessRemo_Click(object sender, EventArgs e) { foreach ( var process in Process.GetProcessesByName("TeamViewer")) { process.Kill(); } Process.Start("C:\\Teste\\suporteremoto.exe"); ele fecha um teamviewer em execução e executa uma versão especifica do teamviewer, sendo que nos meus testes funciona pq eu tenho essa pasta ai chamada teste, mas o programa instala em Program Files, sendo que se for 64, ele vai pra Program Files (x86), dai gostaria de fazer ele ler, tipo um [LocalPath] , mas não sei como , se alguem puder me ajudar ou me da uma luz eu agradeço muito.
    • Por lucasrodrigues
      Estou com esse problema ao tentar vincular uma tabela do MySql a um DataSet. Utilizo o MySqlConnector 8.0.13, MySql-For-VisualStudio 1.2.8.

    • Por jtc-carr
      Linguagem c
      Queria a partir de um ficheiro fazer varias somas do seu conteúdo por exemplo de caracteres especiais, vogais, letra "a" , números, De forma a que devolve-se por exemplo 5 linhas, 4 caracteres especiais, 7 vogais, 9 "a", 6 numeros, num total de 40 caracteres, para os numeros fiz um if, para a função mas não funciona como devia
      while( (texto[MAX]=fgetc(textos))!= EOF ) if(texto[MAX] == '\n') linha++; printf("Existem %d linhas no arquivo\n", linha); if (i == '0' || i == '1' || i == 2' || i == '3' || i == '4' || i == '5' || i == 6' || i == '7' || i == '8'|| i == '9' ) Ajuda seria bem vinda, que queria perceber bem isto
    • Por Maicon Santos
      Foi me passada a tarefa de fazer um sistema onde o usuário (funcionário 1) (Funcionário da empresa X) irá fazer um cadastro com suas informações, após esse cadastro essas informações serão avaliadas por outro funcionário (funcionário 2) da empresa X que fica responsável apenas por verificar as informações desse usuário e dar permissões a ele. Até então é um sistema simples de cadastro.
      Após o funcionário 1 fazer o cadastro o funcionário 2 avaliará essas informações para ver se esse usuário pode ter acesso a conta bancária da empresa. (Pera! Como assim?) Exatamente isso, o usuário vai se cadastrar e se ele for apto a acessar a conta bancária da empresa o sistema terá que fazer o login na conta bancária da empresa, ou seja o sistema deve apenas verificar os dados do funcionário 1, se ele for apto abrir a conta da empresa o sistema terá que passar os dados pelo internet banking do Santander.
       
      Um outro exemplo que talvez facilite entender:
      Os funcionários 1, 2 e 3 trabalham juntos gerenciando as finanças da empresa, então todos eles precisam acessar a conta bancaria da empresa, mas o gerente para não ter que passar o login e senha para eles quer que o sistema faça esse login, sem que os funcionários saibam esses devidos dados, então os funcionários farão um cadastro no sistema e após fazer o login no mesmo eles automaticamente fazem o login na conta do Santander da empresa
       
      Basicamente isso, minhas dúvidas até o momento:
      Isso é realmente possível? Fazer o login no internet banking, que tem a função de ser muito seguro, através de um outro sistema
      Eu tenho a disponibilidade para escolher entre fazer um sistema desktop (usando C#, que eu tenho mais domínio) ou fazer um sistema WEB (que eu não possuo tanto domínio assim das linguagens), para fazer esse tipo de trabalho, o que seria mais indicado?
      Quais dicas vocês podem me dar para essa tarefa? Eu trabalho na área de desenvolvimento a pouco tempo, por isso não tenho muito conhecimento de sistemas desse nível, qualquer direção será de grande ajuda.
      Grato!
    • Por Master_Cyber
      Bom noite pessoal... Estou fazendo um bot que se comunica com o QnaMaker, e dependendo da resposta, deverá ser aberto uma conversação guiada através do FormFlow com uso  do Json.
      Meu problema é exatamente neste ponto para conseguir abrir o formulário.
      Estou usando a SDK V3 e o QnAMakerDialog do garypretty.
      Resumidamente neste ponto devo fazer algo para iniciar o form.
      public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result) {     QnaAnswer a = result.Answers.First();     var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);          if (a.Answer == "form")     {         // ABRIR FORM AQUI     }          await context.PostAsync(messageActivity);     context.Wait(MessageReceived); }  
      Já tentei várias coisas como chamar context.Forward ou context.Call, mas não da certo,  talvez eu esteja chamando de forma errada.
      Sempre retorna a mensagem dizendo que existe um problema no código fonte.
      Vocês podem me ajudar?
      Obrigado!!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.