Pregunta

Actualmente estoy usando la reflexión con SQL. Me parece que si quiero hacer una consulta especializan es más fácil de obtener los resultados mediante la creación de una nueva clase que hereda de otra y la adición de los 2 miembros / columnas para mi consulta especializada. Entonces, debido a reflexiones en el lib en mi código C # puedo escribir foreach (var v en la lista) {v.AnyMember y v.MyExtraMember)

Ahora, en lugar de tener la clase repartidos por todo o modificar mi archivo principales DB.cs ¿Puedo definir una clase dentro de una función? Sé que puedo crear un objeto anónimo escribiendo nueva {name = val, nombre2 = ...}; pero necesito una para pasar esta clase en un func genérico función (consulta, args);

¿Fue útil?

Solución

Para consultar el DynamicObject tal vez que podría servir a sus necesidades si oculta un diccionario detrás de la implementación de TryGetMember / TrySetMember. Hay un pequeño ejemplo de ello, siga el enlace.

Otros consejos

clases (tipos en general) no pueden ser definidos dentro de métodos. Doh.

Es posible (aunque no es simple), pero entonces la clase resultante no sería conocido en tiempo de compilación, por lo que no sería capaz de utilizar v.MyExtraMember. Es, básicamente, obtener un objeto anónimo creado de forma dinámica, por lo que tendría que utilizar la reflexión para el acceso a los miembros adicionales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top