StructureMap - AddAllTypesOf
С StructureMap 2.6.4.1 (нет, я еще не обновился; скоро), я пытаюсь сделать что-то вроде этого:
Scan(scan => scan.AddAllTypesOf<IMap>()
.NameBy(t =>
{
if (t.Namespace.IsNullOrWhiteSpace()) return null;
if (t.Namespace.Contains("Foo")) return "Foo";
if (t.Namespace.Contains("Bar")) return "Bar";
return null;
}));
А потом позже:
container.GetAllInstances<IMap>("Bar"); // doesn't compile
Мой первый вопрос таков: предназначен ли StructureMap только для одной конкретной регистрации на имя?
Единственный способ обойти это - сделать что-то вроде этого:
For<IEnumerable<IMap>>().Add(c =>
{
var maps = c.GetAllInstances<IMap>();
var filteredMaps = maps
.Where(m => m.GetType().Namespace.Contains("Bar"))
.ToList();
return filteredMaps;
})
.Named("Bar");
Есть ли способ лучше?