У меня есть несколько классов
public interface IProvider
{
void Load(int id);
}
public class Provider1 : IProvider
{
public void Load(int id) {}
}
public class Provider2 : IProvider
{
public void Load(int id) {}
}
public interface IService
{
void Load(int id);
}
public class Service : IService
{
IProvider provider;
public Service(IProvider provider) { this.provider=provider; }
public void Load(int id) { provider.Load(id); }
}
, и я зарегистрировал их в StructureMap следующим образом:
For<IService>().Use<Service>().Named("core");
For<IProvider>().Use<Provider1>().Named("core");
For<IService>().Use<Service>().Named("gen");
For<IProvider>().Use<Provider2>().Named("gen");
, но когда я пытаюсь получить Сервис по
var service1 = ObjectFactory.GetNamedInstance<IService>("core");
var service2 = ObjectFactory.GetNamedInstance<IService>("gen");
так что в обоих случаях IProvider инстанцируется для Provider2, почему?
Я ожидал, что в первом случае IProvider будет инстанцировать в Provider1, а во втором случае - в Provider2
Итак, как мне нужно зарегистрировать их вчтобы получить то, что я хочу?