Ok, entonces estoy un poco confundido en cuanto a lo que está pasando con los siguientes datos.¿Pueden las Vistas MVC acceder a todos los proyectos aunque el proyecto donde se ven las vistas no los hace referencia?
se tiene la siguiente estructura en nuestra aplicación:
- Portal.Web - Un MVC 3 aplicación web que básicamente contiene toda la puntos de vista, los scripts, css y métodos de extensión de ayuda HTML
- Portal.Core - Una Biblioteca de clases que es básicamente nuestro Business Objects, tenemos todos nuestros modelos incluidos en este proyecto.
- Portal.Data - Otra biblioteca de clases que contiene nuestra configuración NHibernate y nuestras clases de DTO.
Aquí está nuestro uso: En el controlador llamamos al modelo ubicado en Portal.Core, que se llena llamando a Portal.Data, por lo que básicamente la Web nunca puede ver datos.
Aquí está el truco: En el controlador, digamos por ejemplo, trato de crear una instancia de un nuevo objeto DTO llamada de cliente, así:
var client = new Client();
no va a funcionar, que se espera que no tiene idea de qué cliente es e incluso especificar un uso no lo cortará. Esta bien.
PERO si trato de hacer exactamente la misma línea en la Vista, Resharper agrega el uso a la vista y luego no hay quejas, el proyecto se ejecuta y podemos usar clases DTO en nuestras vistas.
Entonces la pregunta es, ¿por qué es esto? Intento evitar que nuestros juniors usen clases de DTO en Views, por lo que eliminé deliberadamente la referencia al proyecto Data en Web, pero aún pueden usar las clases. ¿Alguien puede arrojar algo de luz?
¿El adaptador también está agregando una referencia? – KingCronus
Nah, eso es solo una cuestión falsa si califico totalmente el tipo con el espacio de nombres y sin la ayuda del reafilamiento, todavía funciona por desgracia. – mattytommo
¡Entonces entiendo su confusión! – KingCronus