2012-11-08 88 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框架> = 4.0嗎?

看到這個conversation

我從這些說明了忠告:我修改MockingKernel源代碼中加入這一行

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

在項目Ninject.MockingKernel和Ninject.MockingKernel.Moq AssemblyInfo.cs中。 然後我重新編譯瞭解決方案,安裝了dll和我的代碼開始工作!

我希望這是你的訣竅。

相關問題