2011-12-19 4 views
0

Ninject를 처음 설치했습니다. NinjectMvc3 버전을 사용하여 Nuget을 통해 App_Start 폴더의 NinjectMvc3 클래스를 제공합니다. 거기에 내RegisterServices 메서드 내 web.config에있는 entitty 연결 문자열을 연결하려고 해요. 근본적으로 지금 당장 가지고있는 것은 이것입니다. 엔티티 연결 문자열을 NinjectMvc3으로 설정하십시오.

var sConnection = ConfigurationManager.ConnectionStrings["dEntities"].ConnectionString; 
     kernel.Bind<IDataContext>().To<DataContext>().WithConstructorArgument("dEntities", new dEntities(sConnection)); 

나에게 다음과 같은 오류 예외 정보를 제공합니다 : System.InvalidOperationException :이 방법은 응용 프로그램의 사전 시작 초기화 단계에서 호출 할 수 없습니다.

/// Initialize a new dEntities object. 
    /// </summary> 
    public dEntities(string connectionString) : base(connectionString, "dEntities") 
    { 
     this.ContextOptions.LazyLoadingEnabled = true; 

내가 뭘 잘못 :

그리고을 heres 소스 오류의 일부

?

편집 : Entity Framework와 저장소 패턴을 사용하고 있다고 덧붙일 수 있습니다. 내가 원하는 것은 어떻게 든 web.config에서 entitites 연결 문자열의 인스턴스를 만들고 NinjectMvc3과 바인딩합니다. 누구든지이 문제에 관해 좋은 의견을 갖고 있습니까?

답변

0

ConfigurationManager.ConnectionStrings["dEntities"].ConnectionString;을 정말로 사용해야합니까? AFAIK ConfigurationManager이 거의 때문에 단지 이전 버전과의 호환성을 위해에서 왼쪽 *

당신은 내가 NinjectMVC3이 WebActivator의 종속성이 잘 기억한다면 var connection = Properties.Settings.Default.dEntities

+0

잘 모르겠으므로 필요하지 않을 수도 있습니다. 비록 내가 이것을 시도 할 때 당신이 제안한 방식으로 나는 성질에 대한 제안을 얻지 못한다. 속성. 속성들? 그 네임 스페이스에 있는지 확신합니까? – Tim

+0

그래야합니다. 나는 MVC3도 사용하고있다. (Ninject하지만 성 윈저와 함께하지는 않지만 관련성이 없어야합니다.) 여기에 내 설정이 있습니다 : http://i.imgur.com/smXq6.png 및 여기 코드 : http : //i.imgur. com/Myakz.png와 마찬가지로 ConfigurationManager와 동일합니다. –

+0

흠, 글쎄, 내 제안이 없습니다. 그리고 이것은 NinjectMvc3 클래스의 RegisterServices 메소드에서 수행해야합니다. 감사. – Tim

0

를 사용을 시도 할 수 있습니다. 어쩌면 그것이 문제 일 수 있습니다.

NinjectMV3에서 제공하는 대신 global.asax App_Start 이벤트 처리기에서 클래스를 사용해보십시오.

+0

흠 있음. 현재이 클래스의 NinjectMvc3 클래스에있는 Start() 메서드에서 충돌이 발생합니다. bootstrapper.Initialize (CreateKernel); 그러나 나는 당신의 제안을 시도하고 구글을 시도 할 것이고, 다른 누군가가 그것을 경험했는지를 알 수있을 것이다. 감사! – Tim

+0

여기에 관련된 스레드가 있습니다. http://stackoverflow.com/questions/5910376/ninject-mvc3-bootstrapper-throwing-already-initialized-exception Nuget 패키지를 사용하고 있습니다. 아마도 문제입니까? – Tim

관련 문제