나는 이런 식으로 뭔가를 할 수 있도록 내 도메인 내에서 정적 클래스 내 컨테이너에 대한 참조를 얻기 위해 노력하고 있어요 :정적 클래스에 IUnityContainer에 대한 참조를 얻는 것은
public static class DomainEvents
{
public static IUnityContainer Container { get; set; }
// ...
public static void Do<T>(T args) where T : IMyInterface
{
foreach (var s in Container.ResolveAll<IDoSomething<T>>())
s.DoSomething(args);
}
}
나는 분명히 생성자를 통해 주입 할 수 , 내가 등록을 해결할 수 있도록 처리 할 수있는 다른 방법이 있습니까? 일부 문서를 읽는 것은 실제로 도움이되지 못했습니다. 어떤 도움을 주시면 감사하겠습니다.
왜 당신이 정적 클래스해야합니까? IoC를 사용하는 경우 일반 클래스로 만들고 필요한 곳에 주입하는 것이 쉬워야합니다. – millimoose
@millimoose : DomainEvents' 클래스는 아마도 도메인 기반 디자인 컨텍스트의 엔티티에 의해 호출되며 엔티티에서 생성자 삽입을 수행 할 수 없거나 할 수 없습니다. 정적 클래스를 참조하는 대신 엔티티 메소드에 IDomainEvents 인터페이스를 삽입하는 것이 좋습니다 (메소드 삽입 사용). – Steven
@Steven이 경우조차도 다음과 같은 것을 할 것입니다 : http://rogeralsing.com/2009/05/30/entity-framework-4-entity-dependency-injection/ (사용중인 ORM 가정 초기 엔티티 라이프 사이클에 충분히 접근 할 수 있습니다.) – millimoose