Каждый раз, когда вы вызываете Initialize, вы сбрасываете ObjectFactory.Т.е. в следующем сценарии:
ObjectFactory.Initialize(x => x.For<IFoo>().Use<Foo>());
ObjectFactory.Initialize(x => x.For<IBaz>().Use<Baz>());
Вы на самом деле только сопоставили IBaz
на Baz
.
Вместо этого следует использовать ApplicationRegistry:
public class ApplicationRegistry : Registry
{
public ApplicationRegistry()
{
For<IFoo>().Use<Foo>();
For<IBaz>().Use<Baz>();
}
}
И используйте это в вашем методе Initialize:
ObjectFactory.Initialize(x => x.AddRegistry(new ApplicationRegistry()));