서비스에 할당 할 수없는 것입니다. 그래서이 일을 위해 내가 Global.asax 파일에 코드의 다음 줄을 사용하고 (위해 Application_Start 이벤트) :유형은이 같은 인터페이스를 가지고 autofac
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterInstance(new CategoryFacade()).As<ICategoryFacade>();
builder.RegisterInstance(new TVideoFacade()).As<ITVideoFacade>();
builder.RegisterType<CategoryController>();
//builder.RegisterType<CategoryFacade>().As<ICategoryFacade>();
//builder.RegisterType<TVideoFacade>().As<ITVideoFacade>();
//builder.Register(c => new CategoryFacade()).As<ICategoryFacade>().InstancePerRequest();
//builder.Register(c => new TVideoFacade()).As<ITVideoFacade>().InstancePerRequest();
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
하지만 다음과 같은 예외 보여주는 :
Additional information: The type 'ABC.ABCDatabase.Facades.TVideoFacade' is not assignable to service 'ABC.ABCDatabase.Abstractions.ICategoryFacade'.
너희들이 적절한 무엇인지 말해 줄 수를 OData 컨트롤러로 autofac을 사용하는 방법. 나는 autofac에 초보자입니다.
은'당신'ICategoryFacade' 인터페이스를 구현 TVideoFacade'합니까? 이 줄은 수정되어야한다고 생각합니다 :'builder.RegisterInstance (new TVideoFacade()) .As();와'builder.RegisterInstance (new TVideoFacade())로 변경됩니다. ' –
nemesv
그래,이게 내 실수 야.하지만 여전히 예외를 보여주는거야. –