0

내 풍부한 도메인 모델에는 순환 참조가 있으며 이는 의도적 인 것입니다.순환 참조가있는 Unity 차단 및 클래스

더 많은 제어를 위해 내 자신의 ORM을 작성하고 속성을 변경 한 것을 감지하기 위해 Unity를 사용하여 setter에 대한 호출을 가로 채고 속성 변경 알림을 트리거합니다 (EF 작동 방식과 비슷 함).

문제는 정책 오버플로가 같은 개체를 반복해서 사용하기 때문에 스택 오버플로가 발생한다는 것입니다. 참조 횟수를 계산하는 방법이 있습니까?

나는 생성자가 순환 적으로 종속되지 않았 음을 이미 확신했지만, 같은 객체를 반복적으로 반복적으로 재귀하는 것을 멈추기 위해서는 여전히 Policy Injection이 필요하다. 당신이 순환 참조가있을 때

+0

IT 서비스를 주입하지하는 것이 가장 좋습니다 엔티티로 변환 : http://lostechies.com/jimmybogard/2010/04/14/injecting-services-into-entities/, http://blog.jonathanoliver.com/2009/10/ddd-entity-injection/ . – Steven

+0

서비스를 제공하지 않습니다. 다른 도메인 엔티티를 주입 중입니다. – Alwyn

+0

그리고 왜 DI 컨테이너를 사용하고 계십니까? – Steven

답변

0

대신 개체를 주입, 당신은, 내장 그들에게 기능을 삽입 할 수 있습니다

Container.RegisterType<IMyService, ImplService>(...); 


    public class MyClass { 

     private Func<IMyService> _serviceProvider; 

     public MyClass(Func<IMyService> serviceProvider) { _serviceProvider = serviceProvider  } 

     public void DoStuff() { 
     _serviceProvider().DoSomething(); 
     } 

    } 

유니티 IMyService을 반환하는 함수를 주입됩니다

+0

나는 공장이나 심지어 Unity 자체를 주입 할 수 있다고 생각하지만, 불필요한 배관 코드를 많이 생성 할 것이다 ... 그러나 여전히 나는 이것이 Unity와 함께 할 것만 큼 좋다고 생각한다. – Alwyn