2013-03-25 2 views
0

asp.net webforms 응용 프로그램에서 Ninject 3을 사용하려고합니다. ObjectDataSource을 포함하는 일부 페이지를 제외하고는 잘 작동하지만 ObjectDataSourceSelect 메서드는 NullReferenceException을 던집니다. 내 코드는 다음과 같습니다asp.net webforms에서 objectdatasource와 함께 Ninject를 사용 하시겠습니까?

Web.Admin.Grades.aspx :

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
        EnablePaging="true" TypeName="Web.Admin.Grades" 
        SelectMethod="GetData" SelectCountMethod="GetDataCount" 
        StartRowIndexParameterName="StartRowIndex" MaximumRowsParameterName="MaximumRows"> 
        <SelectParameters> 
         <asp:ControlParameter ControlID="SearchTxtBox" Type="String" Name="SearchKeyWord" PropertyName="Text" /> 
        </SelectParameters> 
       </asp:ObjectDataSource> 

Web.Admin.Grades.cs :

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
       EnablePaging="true" TypeName="Domain.Abstract.IGradesRepository" 
       SelectMethod="GetGrades" SelectCountMethod="GetGradesCount" OnObjectCreating="ObjectDataSource1_ObjectCreating" 
       StartRowIndexParameterName="StartRowIndex" MaximumRowsParameterName="MaximumRows"> 
       <SelectParameters> 
        <asp:ControlParameter ControlID="SearchTxtBox" Type="String" Name="SearchKeyWord" PropertyName="Text" /> 
       </SelectParameters> 
      </asp:ObjectDataSource> 

및 Web.Admin을 다음과 같이

오해 죄송
[Inject] 
public IGradesRepository _Grades { get; set; } 

public IList GetData(string SearchKeyWord, int StartRowIndex, int MaximumRows) 
{ 
    return _Grades.GetGrades(SearchKeyWord, StartRowIndex, MaximumRows); 
} 

public int GetDataCount(string SearchKeyWord) 
{ 
    return _Grades.GetGradesCount(SearchKeyWord); 
} 
+1

Stacktrace와 그 모든 유선 방법과 많은 도움이 될만한 정보 (많은 사람들이 ODS를 사용하지 않고 사람들을 반쯤 만날 수 있다면 도움을 줄 수 있음) –

+0

나는 디버깅을 시작합니다. 페이지 및 주입 발생하지만 GetData 메서드 호출 _Grades null입니다, 무슨 일이? –

+0

나는 몰라 - 나는 거기에 없다 : 왜 당신은 Ninject가 웹에 주입하도록 요청 받았 는가? 관리자. 그레이드? Ninject는 인스턴스를 만지야 할 이유가 필요합니다 - Ninject를 구성하는 방법, 어떤 모듈을 사용하고 있습니까? 배선 등의 일부를 표시합니다. –

답변

1

내가 문제 를 해결. 학년 :

[Inject] 
    public IGradesRepository _Grades { get; set; } 
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e) 
    { 
     e.ObjectInstance = _Grades; 
    } 
관련 문제