Olá Mailson, tudo bem?
Fiz o teste e deu tudo certo por aqui. Encontrei um problema parecido, ao colocar o método GetValor
dentro do construtorExtratorValorDeArgumentosURL
. Desta forma:
public ExtratorValorDeArgumentosURL(string url)
{
if(String.IsNullOrEmpty(url))
{
throw new ArgumentException("O argumento url não pode ser nulo ou vazio.", nameof(url));
}
int indiceInterrogacao = url.IndexOf('?');
_argumentos = url.Substring(indiceInterrogacao + 1);
URL = url;
public string GetValor(string nomeParametro)
{
nomeParametro = nomeParametro.ToUpper();
string argumentoEmCaixaAlta = _argumentos.ToUpper();
string termo = nomeParametro + "=";
int indicetermo = argumentoEmCaixaAlta.IndexOf(termo);
string resultado = _argumentos.Substring(indicetermo + termo.Length);
int indiceEComercial = resultado.IndexOf('&');
if (indiceEComercial == 0)
{
return resultado;
}
return resultado.Remove(indiceEComercial);
}
}
O correto seria:
public ExtratorValorDeArgumentosURL(string url)
{
if(String.IsNullOrEmpty(url))
{
throw new ArgumentException("O argumento url não pode ser nulo ou vazio.", nameof(url));
}
int indiceInterrogacao = url.IndexOf('?');
_argumentos = url.Substring(indiceInterrogacao + 1);
URL = url;
}
public string GetValor(string nomeParametro)
{
nomeParametro = nomeParametro.ToUpper();
string argumentoEmCaixaAlta = _argumentos.ToUpper();
string termo = nomeParametro + "=";
int indicetermo = argumentoEmCaixaAlta.IndexOf(termo);
string resultado = _argumentos.Substring(indicetermo + termo.Length);
int indiceEComercial = resultado.IndexOf('&');
if (indiceEComercial == 0)
{
return resultado;
}
return resultado.Remove(indiceEComercial);
}
Poderia confirmar se é esse o problema? Se não for, poderia detalhar melhor o problema?(código do erro, a classe completa)
Aguardo retorno!