Duplicar posible:
Is it possible to declare an anonymous type in C# with a variable/dynamic set of fields?¿Cómo agregar propiedades al objeto anónimo dinámicamente?
he construido un generador de consultas que construye una consulta mediante el examen de algunos valores GET que el usuario ha fijado en mi aplicación ASP.NET MVC3. Este generador de consultas puede agregar ordenación, limitación y filtrado (la cláusula WHERE) y luego devuelve la consulta construida.
Esta consulta luego va a mi repositorio apuesto que trata de ejecutar la consulta con:
using (IDbConnection connection = new MySqlConnection(ConnectionStringFactory.GetConnectionString(Database.Push)))
{
connection.Open();
return connection.Query<Notification>(query.QueryString,
new
{
someAnonymousStuffHere = SomeValue
});
}
Sin embargo, los parámetros de la consulta (que es una declaración preparada) necesita ser puesto en un tipo anónimo. El problema es: no sé cómo construir este tipo anónimo de forma dinámica. Lo que hago ahora es presionar todos los parámetros en un diccionario en el generador de consultas, donde la clave es el nombre de la propiedad y el valor es, bueno, el valor.
No puedo simplemente definir un tipo anónimo en mi generador de consultas porque el constructor consta de varios pasos, algunos de los cuales no se ejecutan. Así que a veces tenemos 5 parámetros, a veces tenemos 3 parámetros, etc.
Espero haber explicado mi problema lo suficientemente claro. No dude en solicitar más información :) ¡Gracias de antemano!
¿Qué piensas hacer con este tipo anónimo cuyos miembros no conoces en tiempo de compilación? – Gabe
El tipo anónimo va al método de consulta, que probablemente correlacionará los parámetros con el marcador de posición correcto en la consulta. –
http://stackoverflow.com/questions/7437043/is-it-possible-to-declare-an-anonymous-type-in-c-with-a-variable-dynamic-set-of debería tener su respuesta –