나는 using Autofac to completely decouple an application에 대한 정말 멋진 블로그를 읽었습니다. 그러나 내가 할 수있는 것처럼 시도해 보라. (그리고이 모든 것에 끔찍하게 익숙하지 않다.) 나는 Autofac을 젤로 만들 수 없었다.Unity 구성시 별도의 프로젝트 참조?
MS Patterns & Practices Enterprise Library에서 Unity로 바뀌 었습니다.
- UnityDi (콘솔 응용 프로그램)
- UnityDi.Contracts (인터페이스)
- UntiyDi.Domain (클래스)
- : 자신을 위해 불필요하게 어려운 일을하려면, 나는 같은 프로젝트에 모든 내 물건을 분리 UnityDi.Repositories (데이터 액세스)
- UnityDi.Services
나는 조랑말 XML 구성을 사용 (액세스 서비스 계층을 통해 저장소에) 유니티까지 : 실행중인 응용 프로그램, 걱정에
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="UnityDi.Contracts" />
<assembly name="UnityDi.Domain" />
<assembly name="UnityDi.Services" />
<assembly name="UnityDi.Repositories" />
<namespace name="UnityDi.Contracts" />
<namespace name="UnityDi.Domain" />
<namespace name="UnityDi.Services" />
<namespace name="UnityDi.Repositories" />
<container>
<register type="IUser" mapTo="User"></register>
<register type="IUserService" mapTo="UserService"></register>
<register type="IUserRepository" mapTo="UserRepository"></register>
</container>
</unity>
</configuration>
그리고있어 :
private static readonly IUnityContainer Container = new UnityContainer();
...
Container.LoadConfiguration();
하지만 그렇게하기 위해서는
, 내 콘솔 응용 프로그램에서 위의 모든 프로젝트에 대한 참조가 필요합니다.앱에 UnityDi에 대한 참조 만있을 수있는 방법이 있습니까? 계약 (인터페이스)? 그런 다음 앱은 잘 분리되어 있습니다 (슬그머니 해머와 함께).
나는 충분히 설명 할 만하다. 나는 이것에 완전히 익숙하지 않다. 나는 더 나은 학습을 용이하게하기 위해 이렇게 극단적이다.
XML 구성을 사용할 때 모든 프로젝트에 대한 참조가 필요하지 않습니까? 너는 왜 그렇게 생각하니? –
그리고 다른 모든 프로젝트를 참조하는 프로젝트가 있더라도 문제는 무엇입니까? 그것이 부트 스트랩퍼의 의미입니다. 이 [link] (http://blog.ploeh.dk/2011/07/28/CompositionRoot.aspx)를 확인하십시오 –
VS2010에서 레이어 다이어그램을 만들었습니다. 실제로 계약서에만 의존하는 다양한 레이어를 가지고 있다는 것을 보여주었습니다. 나에게 내 주요 프로젝트는 Unity의 다른 모든 프로젝트를 참조하여 구성을 가져올 때 찾아야한다고 말하지만 Unity가 어떻게 든 후크를 필요로한다고 가정합니다. – Richard