2012-11-08 10 views
5

Próbuję użyć klasy MoqMockingKernel. (Ninject.MockingKernel.Moq) z rozszerzenia Ninject.MockingKernel dla testu jednostkowego.MoqMockingKernel: System.TypeLoadException: Reguły bezpieczeństwa dziedziczenia naruszone przez typ

Przy inicjalizacji MoqMockingKernel Dostaję następujący błąd:

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..

Mój kod inicjalizacji:

 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 }; 
     } 

Jak mogę rozwiązać ten TypeLoadException?

Odpowiedz

4

Czy używasz .Net Framework> = 4.0?

Zobacz ten conversation

Wziąłem porady od tych instrukcji: I zmodyfikowany kod źródłowy MockingKernel dodając tę ​​linię

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

do AssemblyInfo.cs w projektach Ninject.MockingKernel i Ninject.MockingKernel.Moq. Potem zrekompilowałem rozwiązanie, zainstalowałem bibliotekę DLL i mój kod zaczął działać!

Mam nadzieję, że to dla ciebie podstęp.

Powiązane problemy