Welcome to GASP Sign in | Join | Help

Paulo Morgado

Tudo sobre Arquitectura de Software
CUIDADO: A Interpretação Feita Pela Classe System.Web.HttpValueCollection Não É Reversível

Se executarem este código:

System.Collections.Specialized.NameValueCollection queryString = System.Web.HttpUtility.ParseQueryString("noKey&=emptyKey&A=Akey");

queryString será, na verdade, uma referência para uma instância do tipo System.Web.HttpValueCollection.

O que esta classe tem de bom é que o resultado da chamada ao método ToString é o conteúdo da colecção devidamente codificado e formatado para ser usado num URL.

Tal como acontece com a classe base (NameValueCollection), há uma diferença entre a chave ser uma cadeia (string) nula ou uma cadeia vazia na forma como é feita a interpretação da cadeia de entrada. Uma cadeia nula corresponde a não ser especificado parâmetro e uma cadeia vazia corresponde a ser especificado um parâmetro cujo nome é uma cadeia vazia.

Sendo assim, quando se chama ToString numa instância retornada pelo método System.Web.HttpUtility.ParseQueryString espera-se obter a cadeia de entrada (ou, pelo menos, uma que, quando interpretada, dê origem a uma colecção equivalente), certo? Na verdade, o que se obtém é isto: noKey&emptyKey&A=Akey.

Reportei este erro no connect. Se acham que é importante e deve ser corrigido, votem.

Posted: Monday, July 14, 2008 3:01 PM by Paulo Morgado

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS