C# E LINQ - EVENTHANDLER NÃO EST? CARREGANDO
Amigos,
Tenho uma aplicação que usa Linq e o EventHandler não está carregando a procedure de manipulação de objetos:
Alguém faz ideia por que
Não chama a função ContratoSelectCompleted ?
Tenho uma aplicação que usa Linq e o EventHandler não está carregando a procedure de manipulação de objetos:
private void PreencheCampos()
{
SIGServicoContratoClient servicoContrato = new SIGServicoContratoClient();
servicoContrato.ContratoSelectAsync([Ô]CONTRATO_IDCONTRATO[Ô], this.IdContrato.ToString());
servicoContrato.ContratoSelectCompleted +=
new EventHandler<ContratoSelectCompletedEventArgs>(ContratoSelectCompleted);
servicoContrato.CloseAsync();
}
private void ContratoSelectCompleted(object sender, ContratoSelectCompletedEventArgs e)
{
try
{
if (e.Error != null) return;
this.dicDadosSazon.Add([Ô]AnoIni[Ô], [Ô]2014[Ô]);
Inicio = e.Result.First().conDataInicial;
}
catch (Exception ex)
{
Utilidades.GravaErro([Ô]SIGAssCadContrato.ContratoSelectCompleted[Ô], ex);
}
}
Alguém faz ideia por que
servicoContrato.ContratoSelectCompleted +=
new EventHandler<ContratoSelectCompletedEventArgs>(ContratoSelectCompleted);
Não chama a função ContratoSelectCompleted ?
Esse seu código apenas cria um ponteiro para o método ContratoSelectCompleted(). Para que ele possa ser executado, o evento precisa ser ativado no objeto.
Dê uma olhadinha aqui: http://www.macoratti.net/12/06/c_event1.htm
vlw
Dê uma olhadinha aqui: http://www.macoratti.net/12/06/c_event1.htm
vlw
JABA,
Eu estou tentando aprender esse projeto na [Ô]raça[Ô]. Eu não consegui entender como eu ativo esse evento no projeto.
Obrigado
Eu estou tentando aprender esse projeto na [Ô]raça[Ô]. Eu não consegui entender como eu ativo esse evento no projeto.
Obrigado
Neste caso pode ser que esteja acontecendo do evento ser disparado antes de você adicionar o handler dele, veja que primeiro você chama a função ContratoSelectAsync e só depois adiciona um handler para o evento ContratoSelectCompleted
Se o evento foi disparado pelo objeto antes de você adicionar o handler então ele nunca vai ser executado, o correto quando se chama uma função que dispara um evento é você primeiro adicionar os handlers e depois chamar a função, o contrário do que você fez.
Mas pode ser que o problema seja outro, não sei como funciona este objeto SIGServicoContratoClient que você está usando, então não tem como ter certeza do que está acontecendo.
Se o evento foi disparado pelo objeto antes de você adicionar o handler então ele nunca vai ser executado, o correto quando se chama uma função que dispara um evento é você primeiro adicionar os handlers e depois chamar a função, o contrário do que você fez.
Mas pode ser que o problema seja outro, não sei como funciona este objeto SIGServicoContratoClient que você está usando, então não tem como ter certeza do que está acontecendo.
SIGServicoContratoClient é uma classe que chama o Linq. Eu copiei de outra parte que funciona (verifiquei três vezes), mas em outro trecho não funciona.
Poste aqui a parte do código referente ao método --> servicoContrato.CloseAsync(); talvez o evento esteja sendo chamado dentro dele.
Tente inverter a ordem do código dessa forma para ver se funciona:
private void PreencheCampos()
{
SIGServicoContratoClient servicoContrato = new SIGServicoContratoClient();
servicoContrato.ContratoSelectCompleted += new EventHandler<ContratoSelectCompletedEventArgs>(ContratoSelectCompleted);
servicoContrato.ContratoSelectAsync([Ô]CONTRATO_IDCONTRATO[Ô], this.IdContrato.ToString());
servicoContrato.CloseAsync();
}
Tópico encerrado , respostas não são mais permitidas