me suelen gustar la idea de abstraer como propiedades. Por ejemplo:
public int age {
get
{
if (Request.QueryString["Age"] == null)
return 0;
else
return int.Parse(Request.QueryString["Age"]);
}
}
Se podría añadir más de validación si se quería. Pero tiendo a gustar envolver todas mis variables de cadena de consulta de esta manera.
EDITAR: --- También como otro cartel señaló que debe crear estas propiedades en cada página. Mi respuesta es no, no. Puede crear estas propiedades en una sola clase que puede llamar "QueryStrings" o algo así. A continuación, puede crear una instancia de esta clase en cada página en la que desea acceder a sus cadenas de consulta, a continuación, sólo tiene que hacer algo como
var queryStrings = new QueryStrings();
var age = queryStrings.age;
esta manera se puede encapsular toda la lógica de acceso y manejo de cada tipo de variable de consulta en una única ubicación de mantenimiento.
EDIT2: --- Y debido a que es una instancia de la clase, también puede usar la inyección de dependencia para inyectar la clase QueryStrings en cada lugar que lo esté utilizando. StructureMap hace un buen trabajo de eso. Esto también le permite simular la clase QueryStrings e inyectarla si desea realizar pruebas automáticas de unidades. Es mucho más fácil simular esto que el objeto Request de ASP.Net.
La bonificación adicional aquí es que le dice a los desarrolladores futuros exactamente qué esperar de la cadena de consulta cuando se sientan por primera vez con su código. –
Sí, gracias por notar eso. Esa es definitivamente la intención. – 7wp
+1 - una gran manera de manejarlo – nailitdown