2011-04-05 3 views
0

구조식을 처음 사용했습니다. 다음 질문에 대한 지침이 있으면 감사하겠습니다. 감사!StructureMap 부모/자식 관계 삽입

public interface IFoo 
{ 
    IBar Child { get; } 
    void SayIt(); 
} 

public class Foo: IFoo 
{ 
    public IBar Child {get; set;} 
    public Foo(string message) {...} 
    public void SayIt() {...} 
} 

public interface IBar 
{ 
    IFoo Parent {get;} 
} 

public class Bar: IBar 
{ 
    private IFoo parent; 
    public IFoo Parent { get {return parent;} } 
    public Bar(IFoo parent) 
    { 
     this.parent = parent; 
    } 

} 

내가 좋아하는 다음 ObjectFactory를

ObjectFactory.Configure(x => 
      { 
       var foo = x.For<IFoo>().Use<Foo>(); 
       //x.For<IBar>().Use<Bar>().Ctor<IFoo>().Is(foo); 

       x.SetAllProperties(c => 
        { 
         c.OfType<IBar>(); 

        } 
       ); 
      } 
      ); 

내가 건설하고 foo는 개체를 사용하여 IFoo를 구성하고있다 :

내가 좋아하는 몇 가지 코드를 가지고있다, 그러나

var foo = ObjectFactory.With<string>("Hello world").GetInstance<IFoo>(); 

를 I IFoo의 Child 속성을 부모와 함께 IBar 인스턴스로 구성하는 데 어려움이 있습니다. 내가 만든 인스턴스를 다시 가리키는 속성 (예 : 메세지로서 "Hello World"를 가지는 메세지입니다. 이것을 어떻게 할 수 있습니까? 감사!

+0

IoC 도구로 일반적으로하는 일이 아니기 때문에 쉽지 않습니다. 당신은 당신이 주입 된 서비스들 사이에 부모 - 자식 관계가 필요하다고 생각했던 지점까지 당신이 해결하려고하는 실제 문제를 가지고 질문을 바꾸거나 새로운 것을 생성하는 것을 고려할 수 있습니다. –

답변

0

StructureMap에서 양방향 종속성 예외가 발생하기 때문에이 작업을 수행 할 수 없습니다. 이처럼 보이는 대부분의 개체 그래프는 데이터 개체이기 때문에 컨테이너에 속하지 않습니다. 예 : xml 문서 개체.