2012-11-08 4 views
5

MoqMockingKernel 클래스를 사용해 봅니다. (Ninject.MockingKernel.Moq)를 사용하여 유닛 테스트를위한 Ninject.MockingKernel Extension을 만듭니다. MoqMockingKernel : System.TypeLoadException : 형식에 따라 위반 된 상속 보안 규칙

MoqMockingKernel를 초기화 나는 다음과 같은 오류를 받고 있어요 :

System.TypeLoadException: System.TypeLoadException: Inheritance security rules violated by type: 'Ninject.MockingKernel.MockingKernel'. Derived types must either match the security accessibility of the base type or be less accessible..

내 초기화 코드 :

 private MoqMockingKernel mockingKernel; 
     private Mock<IUnitOfWork> unitOfWorkMock; 
     private IExternalServiceRepository externalServiceRepository; 

     [TestInitialize] 
     public void Initialize() 
     { 
      this.mockingKernel = new MoqMockingKernel(); 
      this.mockingKernel.Bind<IUnitOfWork>().ToMock(); 

      this.unitOfWorkMock = this.mockingKernel.GetMock<IUnitOfWork>(); 

      externalServiceRepository = new ExternalServiceRepository { Kernel = this.mockingKernel }; 
     } 

가 어떻게이 TypeLoadException를 해결할 수 ?

답변

4

.Net framework> = 4.0입니까?

conversation

내가 그 명령 조언을했다 참고 : 나는 프로젝트 Ninject.MockingKernel 및 Ninject.MockingKernel.Moq에서의 AssemblyInfo.cs에이 라인

[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

을 추가하여 MockingKernel 소스 코드를 수정했습니다. 그런 다음 솔루션을 다시 컴파일하고 dll을 설치하고 코드가 작동하기 시작했습니다!

나는 이것이 당신에게 트릭이라고 희망합니다.