Я все еще очень плохо знаком с Structure Map, поэтому не могу понять, почему это не работает. Я внедряю «строку подключения» в хранилище и получаю следующую ошибку из Структурной карты:
Код исключения StructureMap: 205
Отсутствует запрошенное свойство Instance "purchaseOrdersFilePath" для InstanceKey "a04b4f71-4171-4e9f-b98d-170fc9ee005f"
Кстати, строка подключения указана в кавычках, потому что я также играю с linq to xml, поэтому «строка подключения» на самом деле является путем к файлу. Я добавляю это на тот случай, если это как-то связано с проблемой.
Мой код выглядит следующим образом:
public class PurchaseOrderRepository : IPurchaseOrderRepository
{
private readonly string PurchaseOrdersFilePath;
public PurchaseOrderRepository(string purchaseOrdersFilePath)
{
if (string.IsNullOrWhiteSpace(purchaseOrdersFilePath)) throw new ArgumentNullException("purchaseOrdersFilePath");
PurchaseOrdersFilePath = purchaseOrdersFilePath;
}
}
В моем файле Global.asax у меня есть следующий оператор конфигурации:
private void RegisterControllerFactory()
{
var ioc = new Container();
var controllerFactory = new IocControllerFactory(ioc);
ControllerBuilder.Current.SetControllerFactory(controllerFactory);
ioc.Configure(r => r.Scan(x =>
{
x.AssemblyContainingType<HomeController>();
x.AddAllTypesOf<IController>();
x.Include(t => typeof(IController).IsAssignableFrom(t));
}));
ioc.Configure(r => r
.ForConcreteType<PurchaseOrderRepository>()
.Configure.Ctor<string>().Is(@"C:\Users\sromero\Documents\Visual Studio 2010\Projects\DIDemo\SupportFiles\POS.xml"));
}
Что я делаю не так?
Спасибо за вашу помощь.