Pregunta

Tengo tres proyectos en mi solución .NET.
El proyecto principal y dos proyectos de biblioteca de clases.

He descubierto que necesito para hacer referencia a los proyectos de biblioteca de clases.
¿Puedo hacer eso? ¿Es seguro o hay algunas consideraciones?

¿Fue útil?

Solución

El IDE no dejas que cuando los proyectos están en una sola solución. Hay maneras sutiles para confuzzle ella. Pero entonces la solución no puede ser construido desde cero (es decir Construir + Reconstrucción) ya que la referencia de ensamblado no está disponible todavía. Refactorizar esto, es probable que desee una tercera asamblea que ambos pueden hacer referencia.

Otros consejos

Las referencias circulares son posible (a través de la línea de comandos y algunos trucos; no a través del IDE), pero son un gran dolor; no lo haga!

Cualquiera de agregar un adicional de montaje para los tipos comunes, o combinar las dos bibliotecas.

En muchos sentidos, menos es más simple ... Una gran cantidad de archivos DLL no quiere decir que usted ha alcanzado la pureza -. Es un desastre

Cuando me he encontrado con este problema, tengo clases creadas que sólo tienen propiedades. Podría ser Employee, Customer, Product, lo que sea. Estas clases no es necesario hacer referencia a cualquier otro proyecto, por lo que múltiples proyectos pueden hacer referencia a ellos.

Los métodos que pertenecen a esos objetos (Employee, Customer, Product) y luego ir en sus propias clases en los otros proyectos.

Una situación en la que me he encontrado esto muy a menudo se encuentra en una aplicación de tres capas - capa de presentación, capa de negocio, y la capa de acceso a datos. Quiero que el DAL para recuperar datos y poblar un objeto Empleado, que se devuelve a la BLL. Si la clase de empleado está en el BLL y tiene dos propiedades y métodos, entonces no hay manera fácil de rellenar un objeto Empleado en el DAL y devolverlo a la BLL - porque el BLL debe tener una referencia a la DAL, por lo que la DAL no puede a su vez la referencia BLL. Creación de un proyecto independiente con propiedades únicas clases (Employee, Customer, Product) es una manera de resolver este problema.

Si por "referencia cruzada", que quiere decir que usted quiere hacer lo siguiente:

1) Proyecto principal contiene referencias a BIBLIOTECA-ALPHA y BIBLIOTECA-BETA

2) Proyecto BIBLIOTECA-ALPHA contiene referencias a BIBLIOTECA-BETA

3) Proyecto BIBLIOTECA-BETA contiene referencias a BIBLIOTECA-ALPHA

entonces no. Visual Studio no será capaz de construir principal hasta que se construye ALPHA y BETA . Será incapaz de creación ALPHA hasta que se construye BETA . Y será incapaz de creación BETA hasta que se construye ALPHA . Por lo tanto, no será capaz de construir nada.

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