프로젝트에 여러 개의 Web API 컨트롤러가 있습니다. 많은 중복 된 코드를 작성한 후, 아래 코드로 리팩터링했습니다.이 코드는 재사용 성이 높은 것으로 보입니다. 그러나 갑자기 오류가 Make sure that the controller has a parameterless public constructor
, Ninject 컨트롤러 바인딩을 해결할 수없는 것으로 인해 것 같습니다. 나는 그들을 묶는 방법을 모르겠다.컨트롤러 해결 : "컨트롤러에 매개 변수없는 public 생성자가 있는지 확인하십시오."
내 코드 :
kernel.Bind<IController<OntvangstViewModel, long>>().To<OntvangstenController>();
kernel.Bind<BaseController<OntvangstViewModel, long>>().To<OntvangstenController>();
그러나 어느 쪽도 제대로 작동 다음 Ninject에 RegisterServices
방법에서
public interface IController<T, TK>
{
DataSourceResult Get(DataSourceRequest request);
T Get(TK id);
HttpResponseMessage Post(T model);
T Put(T model);
TK Delete(TK id);
}
public abstract class BaseController<T, TK> : ApiController, IController<T, TK>
{
private readonly IRepository<T, TK> repository;
public BaseController(IRepository<T, TK> repository)
{
this.repository = repository;
}
/* methods here */
}
public class ReceiptsController : BaseController<ReceiptViewModel, long>
{
public ReceiptsController(IRepository<ReceiptViewModel, long> repository) :
base(repository)
{
}
}
, 나는 다음과 같은 시도했습니다. 구현 또는 상속이 잘못 되었습니까? 아니면 내가 다르게 묶어야합니까?
이것을 확인하십시오 : http://stackoverflow.com/questions/24254189/webapi-make-sure-that-the-controller-has-a-parameterless-public-constructor –
Hmmmmmmm .... 제 생각에는 먼저 이 [비디오] (https://skillsmatter.com/skillscasts/5688-orms-you-re-doing-it-wrong)를보십시오. 그런 다음 앱을 다시 작성하십시오. –
화재 발견 이후 저장소가 왜 가장 좋은지에 대한 약 백만 건의 기사를 본 후 그 비디오는 매우 흥미로 웠습니다. 내가 집에 갈 때 나는 그것을 볼 것이다. –