2012-11-08 17 views
5

tarafından ihlal edildi MoqMockingKernel sınıfını kullanmayı deniyorum. Bir birim testi için Ninject.MockingKernel Uzantısı'ndan (Ninject.MockingKernel.Moq). MoqMockingKernel: System.TypeLoadException: Inheritance güvenlik kuralları

MoqMockingKernel başlatılıyor anda aşağıdaki hatayı alıyorum:

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

Benim başlatılıyor kodu:

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

Nasıl bu TypeLoadException çözebilir ?

cevap

4

.Net framework> = 4.0 kullanıyor musunuz?

bu conversation

O talimatlardan tavsiye aldı bakınız: Ben projeler Ninject.MockingKernel ve Ninject.MockingKernel.Moq içinde AssemblyInfo.cs için bu satırı

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

ekleyerek MockingKernel kaynak kodu modifiye. Ardından çözümü yeniden derledim, dll'leri yükledim ve kodum çalışmaya başladı!

Umarım bu sizin için bir numaradır.