2014-09-08 3 views
2

Предупреждение об исключении rtfm: документация StructureMap является основной версией устаревшей, а API-документы уже не существуют, не говоря уже о атрибутах, отмеченных как устаревшие.Условно сконфигурировать экземпляр в StructureMap

У меня есть настройка среды, которая для всех целей и целей может рассматриваться как статическая логическая область приложения. В результате этого логического элемента необходимо контролировать, какая реализация моего интерфейса подключена. sample documentation для условных выражений идеально подходит для того, что я ищу, но ни один из этих методов не существует в 3.1.1.134 (последний из NuGet по состоянию на 9/8/2014).

Я ищу текущую версию следующего псевдосинтакса и не допускаю, чтобы «GetEnvironmentVariable» была красной селедкой - это всего лишь пример системного булевского времени выполнения, который необходимо оценить на графике здание.

public ConditionalInjectionRegistry : Registry 
{ 
    For<IBehavior>().UseConditionally(u => 
    { 
     u.Conditionally(() => Environment.GetEnvironmentVariable("foo") == "bar")).Is<FooedBehavior>(); 
     u.Default.Is<NormalBehavior>(); 
    }); 
} 

ответ

2

Согласно mailing list, правильному способу сделать это сейчас с лямбдой внутри Use().

For<IIndexResolver>().Use("some description for diagnostics", c => { 
    // and just do it all with a single anonymous lambda 
}); 
Смежные вопросы