Есть ли способ, чтобы инициализировать StructureMap таким образом, чтобы мы не получили бы этот текст исключения:Экземпляр по умолчанию для именованного экземпляра пропустить
Не удалось найти имя экземпляра «X» для PluginType ISomeInterface.
... но вместо этого получил стандартную реализацию типа?
Пример кода ниже:
[Test]
public void OnNamedMiss()
{
ObjectFactory.Initialize(i =>
{
i.For<IX>().Use<Alpha>().Named("alpha");
i.For<IX>().Use<Bravo>().Named("bravo");
i.For<IX>().Use<Charlie>().Named("charlie");
// define default?
});
// Can I make this return Default instead of throwing?
var x = ObjectFactory.GetNamedInstance<IX>("delta");
}
public interface IX { }
public class Default : IX { }
public class Alpha : IX { }
public class Bravo : IX { }
public class Charlie : IX { }
Я перечитал вопрос и понял, что вы хотите, чтобы класс по умолчанию был по умолчанию, а не экземпляр C# по умолчанию. Отредактировано в новом решении для этого. – PHeiberg