2016-08-23 2 views
1

을 가진 WinForms N 계층 응용 프로그램 간단한 winforms 응용 프로그램을 구축 중이며 n 계층 아키텍처, Dependecy Injection (단순 주입기 사용), Entity Framework 코드 우선, 저장소 및 작업 단위 패턴을 사용하고 있습니다. .DI, 저장소 및

  • UI 레이어.
    • 서식.
  • 비즈니스 로직 계층.
    • 비즈니스 개체 "관리자"(비즈니스 프로세스를 노출하는 클래스).
  • 데이터 액세스 레이어
    • 저장소.
    • 데이터베이스 컨텍스트.

기본적으로, 나는 응용 프로그램의 진입 점 (Program.cs) 내 컨테이너에 객체를 등록 할 수 있다는 것을 알고 있지만, 단지 데이터 액세스 계층 개체를 지배하는 UI에서 액세스 할 개체에 대한 작업 .

그래서 클래스 라이브러리이므로 비즈니스 로직 계층에서 객체를 어떻게 등록 할 수 있습니까?

미리 감사드립니다.

+0

을 이것은 바보 같은 반복이다 ** 이렇게하려고하지 마라. 당신은 코드를 괴롭힐 것이다. EntityFramework ** IS ** 작업 단위 및 저장소 패턴의 단위 –

+1

관련 : http://programmers.stackexchange.com/q/300376/201695 –

답변

1

종속성과 참조를 구분해야합니다.

사용자의 UI가 DataAccessLayer에 종속되어서는 안된다는 말은 맞습니다. 그렇다고해서 SQL Server 코드에 연결해서는 안됩니다 (예를 들어). 그러나 그 프로젝트를 참조 할 수 없다는 의미는 아닙니다.

문제를 해결하려면 UI에서 모든 프로젝트를 참조하면됩니다 (응용 프로그램의 시작점이됩니다).

사실 : UI => Business Logic => 데이터 액세스와 같은 참조를 작성하면 간접적으로 UI의 데이터 계층을 참조하게됩니다.

나는 더 상세하게 설명 정확히 이것에 대해 게시물 작성했습니다 ". 엔티티 프레임 워크 코드 첫째, 저장소 및 작업 단위 패턴의"

https://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/

+0

예, 알고 계신지 _indirectly_ UI에서 DAL을 참조하고 있습니다. 응답 주셔서 감사합니다, 나는 그것을 줄 것이다. – hyperar