У меня есть служба Windows, и я инъекционный модуль к нему:Инъекционного модуль, который содержит впрыскиваются модуль, используя Mef2
private ICoupon _couponManager;
...
DirectoryCatalog catalog = new DirectoryCatalog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"));
_container = new CompositionContainer(catalog);
_couponManager = _container.GetExportedValue<ICoupon>();// Here I'm getting an exception
Но модуль, который я пытаюсь импортировать это Constructer впрыскивается модуль :
[Import(typeof(IWallet))]
private IWallet _iWallet;
private static CompositionContainer _container;
public CouponManager()
{
DirectoryCatalog catalog = new DirectoryCatalog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"));
_container = new CompositionContainer(catalog);
_container.ComposeParts();
}
Так я получаю «исключение при попытке создать экземпляр типа„X.Business.CouponManager“.» ошибка. Как мне добавить свой модуль?
Я не уверен, если мой вопрос ясен, если нет, просьба уточнить подробности.
Спасибо заранее,
Edit: Интересная часть: я могу вводить этот модуль для моего ASP.NET MVC приложения и использовать его без проблем.
Я попробовал ваше предложение, но я все равно получаю то же исключение. Есть ли у вас какие-либо другие идеи? – anilca
отлаживать контейнер перед вызовом GetExportedValue. Я предполагаю, что у вас есть только настройки из вашей папки с плагинами, и вы пропускаете некоторые зависимости из папки приложения. – blindmeis
Ваш контейнер должен иметь экспорт ICoupon и экспорт IWallet! – blindmeis