막연한 제목을 위해 죄송합니다. 나는 내가 일하려고하는 것을 설명 할 것이다.IService 생성자가 생성되지 않음
내 관리자보기는 관리자보기 저장소를 사용하며 관리자 목록은 관리 저장소의 모음 인 관리 서비스를 호출합니다. 간략하게하기 위해 관리 서비스에서 참조하는 저장소는 하나뿐입니다.
내 관리보기 모델 내 클래스의 상단을 구성하는 모양이 getMenuItems 및 getMenuCats 다음 뷰 모델에 설정되어있는 데이터를 검색하는 서비스를 사용하는 두 가지 방법이 있습니다public class adminMenuVM
{
private readonly IAdminMenuService menuService;
public adminMenuVM(IAdminMenuService adminMenuService)
{
this.menuService = adminMenuService;
}
public adminMenuVM()
{
menuItems = getMenuItems();
menuCats = getMenuCats();
}
}
.
내 문제는 응용 프로그램을 실행할 때 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."오류가 발생한다는 것입니다. 이제 adminMenuVM()이 viwModel에 의해 호출되고 서비스를 초기화하는 생성자가 호출되지 않기 때문입니다.
제 질문은 서비스 생성자가 호출되었는지 확인하고 뷰 모델을 호출 할 때 그 일을 어떻게 할 수 있습니까?
나는 이것을 사용하려고 시도했다 : 매개 변수없는 생성자에서 이것을 시도했지만 인터페이스의 새 인스턴스를 만들 수 없으므로 인터페이스를 할당 할 수 없다.
편집 @ 18:49 나는 생각을했지만 구현 방법을 모른다. 누군가가 어떻게 "Constructor Chain"을 할 수 있는지 또는 가능하다면 조언 할 수 있습니까? 내 생각은 매개 변수없는 생성자를 서비스 생성자에 연결하여 호출되도록합니다. 나는 벗어날 수 있지만 예전 도움에 감사 할 것입니다.
감사합니다.이미 시도했지만 여전히 같은 오류가 발생했습니다. 이것은 내가 설정할 수없는 IAdminMenuService 타입의 변수를 필요로하는 생성자 때문이라고 가정합니다. –
adminMenuVM의 인스턴스가 여러분이나 mvc 프레임 워크에 의해 생성 되었습니까? 또한, 같은 오류를 *해서는 안되기 때문에, 어떻게 시도했는지 보여주십시오. –
내 VM에 대해 강력한 형식의 뷰를 만들면 해당 MVC Framework에 의해 생성됩니다. 이것은 내 VM 맨 위에 있습니다. @ Model GenericCMS.ViewModels.adminMenuVM –