2012-11-08 24 views
5

Provo ad utilizzare la classe MoqMockingKernel. (Ninject.MockingKernel.Moq) dall'estensione Ninject.MockingKernel per un test di unità.MoqMockingKernel: System.TypeLoadException: regole di sicurezza dell'eredità violate dal tipo

Al inizializzazione del MoqMockingKernel sto ottenendo il seguente errore:

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

Il mio codice di inizializzazione:

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

Come posso risolvere questo TypeLoadException?

risposta

4

Si sta utilizzando .Net framework> = 4.0?

Vai a questa conversation

ho preso consiglio da queste istruzioni: ho modificato MockingKernel codice sorgente con l'aggiunta di questa linea

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

a AssemblyInfo.cs in progetti di Ninject.MockingKernel e Ninject.MockingKernel.Moq. Poi ho ricompilato la soluzione, ho installato dll e il mio codice ha iniziato a funzionare!

Spero che questo sia il trucco per voi.

Problemi correlati