public interface IFoo{}
public class Foo1 : IFoo {
public Foo1(int id){}
public Foo1(string val){}
}
public class Foo2 : IFoo {
public Foo2(int id){}
public Foo2(string val){}
}
Соответствующие параметры реестра для этого ...
ForRequestedType<IFoo>().TheDefault.Is.ConstructedBy(()=>new Foo1("some string val"));
InstanceOf<IFoo>().Is.OfConcreteType<Foo2>();
затем мы используем IFoo в качестве параметра для чего-то еще ... например:
public interface IBar{}
public class Bar1:IBar {
public Bar1(IFoo foo){}
}
public class Bar2:IBar {
public Bar2(IFoo foo){}
}
Регистрация для этого выглядит следующим образом ...
ForRequestedType<IBar>().TheDefault.Is.OfConcreteType<Bar1>().CtorDependency<IFoo>().Is<Foo1>();
Теперь я хочу, чтобы Bar2 использовал Foo2, и я хочу, чтобы Foo2 использовал конструктор "new Foo2 (1)", который я пробовал
InstanceOf<Foo2>().Is.ConstructedBy(()=> new Foo2(1));
но это не удалось.
Как, если вообще, я могу заставить это работать с использованием реестра StructureMap?