2016-09-23 2 views
0

난 codeplex 프리즘 단일체를 기반으로 응용 프로그램을 만들려고합니다. 또한 느슨하게 결합 된 응용 프로그램을 만드는 방법을 이해하는 데 어려움이 있습니다.프리즘 모듈/타입 교환

내 이해에서 모듈은 응용 프로그램의 완전히 독립적 인 작동 부분이어야합니다. 즉, 다른 응용 프로그램 내부에 적용됩니다. 하나의 개발 프로젝트에서 다른 프로젝트로의 참조가 없다는 의미입니다.

하지만 모듈 간의 교환은 어떻게됩니까? 나는 잘 작동하는 eventaggregator를 사용하고 있지만, 송신 및 수신 모듈 모두에서 messagetype (데이터를 제공하는 클래스)이 필요합니다. 참조없이 작업하고 싶다면 messagetype을 복제해야합니다. 두 모듈 모두에 대해 messagetype을 제공하는 세 번째 모듈을 사용할 수는 있지만 세 번째 모듈을 참조하지 않고 messagetype을 어떻게 사용할 수 있습니까?

유니티 컨테이너 내에 messagetype을 등록하려고하면 컴파일러 오류가 발생합니다. 모듈 a는 컴파일 할 때 세 번째 모듈을 알지 못하기 때문에 모듈 b도 마찬가지입니다.

복합 응용 프로그램의 제한 사항이 있습니까? 아니면 퍼즐 조각이 누락 되었습니까?

미리 도움 주셔서 감사합니다.

답변

0

공통 데이터 클래스에 대해 세 번째 모듈을 만들 필요가 없습니다. 해당 클래스에 대한 공통 프로젝트를 만들고 모듈간에 공유 할 수 있습니다. 클래스를 등록해야하는 경우 특정 모듈 대신 Bootstrapper를 사용하십시오.

+0

올바르게 이해한다면 모듈의 공통 참조를 프레임 워크 -dll로 사용해야한다는 것이 맞습니까? 만약 내가 그렇게하고 모듈과 프레임 워크 dll의 수가 증가한다면 dll을 긴밀하게 연결하는 전통적인 방식에 이점이 없을 것입니다. – Elex

+0

예, 그것은 단단히 결합되지만 공유 데이터에 대해서만 적용됩니다. 공용 데이터를 액세스하기 위해 공유 서비스를 사용할 수도 있습니다. 서비스의 싱글 톤 인스턴스를 만들고 해당 클래스에 공유 데이터를 보관합니다. –

+0

글쎄, 아이디어를 주셔서 감사합니다,하지만 그것은 느슨하게 결합 된 응용 프로그램의 목적이 단단한 커플 링을 한 위치에서 다른 위치로 오프셋하는 것이라고 생각하지 않습니다. – Elex