Я пробую последнюю сборку StructureMap, чтобы узнать о контейнерах IoC и тому подобном. В качестве моего первого теста у меня есть следующий класс:
public class Hospital
{
private Person Person { get; set; }
private int Level { get; set; }
public Hospital(Person employee, int level)
{
Person = employee;
Level = level;
}
public void ShowId()
{
Console.WriteLine(this.Level);
this.Person.Identify();
}
}
Затем я использую StructureMap следующим образом:
static void Main()
{
ObjectFactory.Configure(x =>
{
x.For<Person>().Use<Doctor>();
x.ForConcreteType<Hospital>().Configure.Ctor<int>().Equals(23);
});
var h = ObjectFactory.GetInstance<Hospital>();
h.ShowId();
}
Поэтому я передаю объект Doctor в качестве первого параметра конструктора в Hospital и пытаюсь установить для параметра level
значение 23. Когда я запускаю приведенный выше код, я получаю:
Необработанное исключение:
StructureMap.StructureMapException:
Код исключения StructureMap: 205
Отсутствует запрошенное свойство экземпляра
«уровень» для InstanceKey
«5f8c4b74-a398-43f7-
91d5-cfefcdf120cf "
Похоже, я вообще не устанавливаю параметр level
. Может кто-нибудь указать мне правильное направление - как мне установить параметр level
в конструкторе?
Приветствия.
Иак.