ERRO COM METODO INVOKE
Pessoal bom dia,
Conhece pouco C# e WebService.
Estou com um erro: Parameter count mismatch.
object[] args = {messagePipeEnumerator.Current.pipeAlias, messagePipeEnumerator.Current.body, user, channelPath};
Collections.ArrayList localArrayList = null;
if(localMethodInfo != null)
{
//Erro ocorre na linha abaixo.
localArrayList = (Collections.ArrayList)localMethodInfo.Invoke(localObject, args);
}
Como faço para tentar solucionar isso erro.
Obigado
Conhece pouco C# e WebService.
Estou com um erro: Parameter count mismatch.
object[] args = {messagePipeEnumerator.Current.pipeAlias, messagePipeEnumerator.Current.body, user, channelPath};
Collections.ArrayList localArrayList = null;
if(localMethodInfo != null)
{
//Erro ocorre na linha abaixo.
localArrayList = (Collections.ArrayList)localMethodInfo.Invoke(localObject, args);
}
Como faço para tentar solucionar isso erro.
Obigado
Caramba, porque está fazendo dessa maneira? Porque simplesmente não adiciona a referência do webservice e usa os métodos dele mesmo??? Precisa ser por invoke?
Então KERPLUNK,
Esse trecho de código é aqui da empresa onde trabalho, estou apenas dando manutenção e isso é antigo.
Não posso mudar muita coisa.
Esse trecho de código é aqui da empresa onde trabalho, estou apenas dando manutenção e isso é antigo.
Não posso mudar muita coisa.
O erro diz tudo, número incorreto de parâmetros.
Você tem que verificar quantos parâmetros o método que você está chamando pelo invoke precisa, no caso você está passando 4 parâmetros através do array chamado args, você precisa verificar quantos são corretamente e modificar este array para incluir todos os parâmetros necessários.
Você tem que verificar quantos parâmetros o método que você está chamando pelo invoke precisa, no caso você está passando 4 parâmetros através do array chamado args, você precisa verificar quantos são corretamente e modificar este array para incluir todos os parâmetros necessários.
OCELOT,
Do erro eu sabia porem, nao sabia resolver porem achei uma solução pesquisando.
Vou deixar a explicação para mais pessoas que trabalha com algumas versões antigas como aqui na empresa.
A rotina faz um while pegando varios modelos e dando um invoke em alguns metodos
Apenas um tem apenas 2 parametos e o restante 4.
A solução foi verificar quantos parametros o metodo necessita.
if (localMethodInfo.GetParameters().Length == 2)
{
args = new object[]{messagePipeEnumerator.Current.pipeAlias, channelPath};
}
else
{
args = new object[]{messagePipeEnumerator.Current.pipeAlias, messagePipeEnumerator.Current.body, user, channelPath};
}
Do erro eu sabia porem, nao sabia resolver porem achei uma solução pesquisando.
Vou deixar a explicação para mais pessoas que trabalha com algumas versões antigas como aqui na empresa.
A rotina faz um while pegando varios modelos e dando um invoke em alguns metodos
Apenas um tem apenas 2 parametos e o restante 4.
A solução foi verificar quantos parametros o metodo necessita.
if (localMethodInfo.GetParameters().Length == 2)
{
args = new object[]{messagePipeEnumerator.Current.pipeAlias, channelPath};
}
else
{
args = new object[]{messagePipeEnumerator.Current.pipeAlias, messagePipeEnumerator.Current.body, user, channelPath};
}
Tópico encerrado , respostas não são mais permitidas