StructureMap внедрить родительские / дочерние отношения - PullRequest
0 голосов
/ 05 апреля 2011

Я новичок в 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;
    }

}

Я строю IFoo, используя следующую 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, такие как:

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

Однако у меня возникают трудности при настройке свойства Child IFoo в качестве экземпляра IBar с родительским свойством, указывающим обратно на создаваемый мной экземпляр, например, с сообщением «Hello World» в качестве сообщения.,Как я могу сделать это?Спасибо!

1 Ответ

0 голосов
/ 11 апреля 2011

Вы не можете сделать это, потому что StructureMap вызовет исключение двунаправленной зависимости.Большинство графов объектов, которые выглядят так, не принадлежат контейнеру, потому что они являются объектами данных.Например, объекты документа xml.

...