0
내가 얻고있다 "을 'System.NullReferenceException'형식의 예외가 AutoFac Practice.dll에서 발생했지만 사용자 코드에서 처리되지 않은" Autofac에 대한 나의 코드와 구성은 다음과 같습니다Autofac 널 참조 오류 웹 API를 2
Autofac 구성 :
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var builder = new ContainerBuilder();
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
// OPTIONAL: Register the Autofac filter provider.
builder.RegisterWebApiFilterProvider(config);
builder.RegisterType<SqlServerRepository>().As<IDBRepository>().InstancePerRequest();
// Set the dependency resolver to be Autofac.
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
컨트롤러 코드 :
public class HomeController : ApiController
{
IDBRepository _repository;
void Home(IDBRepository repository)
{
_repository = repository;
}
[HttpGet]
public string Print()
{
return _repository.Print();
}
}
저장소 컨트롤러에서
interface IDBRepository
{
//void Select();
//void Insert();
//void Update();
//void Delete();
string Print();
}
public class SqlServerRepository : IDBRepository
{
public string Print()
{
return "hello there, i am Sql Server";
}
}
내가이 줄에 오류가 점점 오전 :) (_repository.Print를 반환 ; : 개체 참조가 설정되지 않음을 나타냅니다. _repository가 참조를 얻지 못했습니다. 구성에 대해 누락 된 것이 무엇인지 알 수 없습니다.