Использование Unity в проекте (Unity 4.0.1)
При настройке Unity у меня есть
container.RegisterLeadDeliveryProvider<YardiPopcardProvider>(VendorTaskType.YardiPopcard);
Где RegisterLeadDeliveryProvider:
public static IUnityContainer RegisterLeadDeliveryProvider<TProvider>(this IUnityContainer container, VendorTaskType type)
where TProvider : ILeadDeliveryProvider<IBrandConfiguration>
{
return container.RegisterType<ILeadDeliveryProvider<IBrandConfiguration>, TProvider>(type.ToString());
}
После этого Я сделал
var type = VendorTaskType.YardiPopcard.ToString();
var isRegistered = container.IsRegistered<ILeadDeliveryProvider<IBrandConfiguration>>(type);
isRegustered == правда. Итак, зарегистрирован провайдер. Но, если я использую
var obj = container.Resolve<ILeadDeliveryProvider<IBrandConfiguration>>(type);
Объект всегда равен нулю. Предположительно, это должен быть YardiPopcardProvider.
Если отладить его, он показывает: obj сгенерировал исключение типа 'System.IO.FileNotFoundException'. Сообщение: Не удается загрузить сборку «D: \ ....... ScheduledTask.YardiPopcard.dll». Тем не менее, файл DLL там. Не уверен, почему у него есть это исключение.
Структура решения:
EXEConsole
YardiPopcardProvider
Unity ......
Проект Unity имеет контейнер Unity и регистрирует все объекты. Проект EXEConsole получает контейнер, затем разрешает объект ProviderTask. В объекте ProviderTask все, что он делает, это разрешает YardiPopcardProvider.
Я могу подтвердить, что ScheduledTask.YardiPopcard.dll находится в папке EXEConsole и Unity.
Кто-нибудь знает, как я могу это исправить? Спасибо