2012-11-08 17 views
5

Ich versuche, die MoqMockingKernel-Klasse zu verwenden. (Ninject.MockingKernel.Moq) aus der Ninject.MockingKernel Extension für einen Unit-Test.MoqMockingKernel: System.TypeLoadException: Vererberungssicherheitsregeln verletzt nach Typ

an der MoqMockingKernel Initialisierung Ich erhalte den folgenden Fehler:

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

Mein Initialisierung Code:

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

Wie kann ich diese TypeLoadException lösen?

Antwort

4

Verwenden Sie .Net-Framework> = 4.0?

Sehen Sie diese conversation

ich Rat von diesen Anweisungen nahm: Ich modifizierte Code MockingKernel Quelle durch diese Zeile hinzufügen

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

zu AssemblyInfo.cs in Projekten Ninject.MockingKernel und Ninject.MockingKernel.Moq. Dann rekompilierte ich die Lösung, installierte DLLs und mein Code begann zu arbeiten!

Ich hoffe, das ist der Trick für Sie.