我是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构建IFoo
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>();
但是,我很难将IFoo的Child属性配置为IBar的实例,其中parent属性指向我正在创建的实例,例如以“Hello World”为信息的那个。我怎么能做到这一点?谢谢!
答案 0 :(得分:0)
您无法执行此操作,因为StructureMap将抛出双向依赖项异常。大多数看起来像这样的对象图不属于容器,因为它们是数据对象。例如,xml文档对象。