Я пытаюсь зарегистрировать dll с именем "BigEye.Business" и привязать этот файл к проекту mvc 3. Но когда я пытаюсь получить экземпляр объекта в этой dll, autofac говорит, что он не зарегистрирован. Вот как я регистрирую и разрешаю объект:
private static IContainer SetDIContainer()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterType<UserAuthManager>().As<IUserAuth>().InstancePerHttpRequest();
builder.RegisterType<SessionManager>().As<ISession>().InstancePerHttpRequest();
//Here is the code to register that dll
var services = Assembly.Load("BigEye.Business");
builder.RegisterAssemblyTypes(services);
IContainer container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
return container;
}
public static T GetInstance<T>()
{
IContainer container = SetDIContainer();
using(var httpRequestScope = container.BeginLifetimeScope("httpRequest"))
{
return httpRequestScope.Resolve<T>();
}
}
И когда я вызываю функцию GetInstance, я получаю "Запрошенная служба "BigEye.Interfaces.Business.IUser" не зарегистрирована". Должен ли я регистрировать все компоненты в Business dll? Есть ли способ сделать это? Потому что объекты и услуги в Бизнесе со временем будут меняться.
Спасибо