6

我尝试使用 MoqMockingKernel 类。(Ninject.MockingKernel.Moq) 来自 Ninject.MockingKernel 扩展,用于单元测试。

在初始化 MoqMockingKernel 时,我收到以下错误:

System.TypeLoadException:System.TypeLoadException:类型违反继承安全规则:'Ninject.MockingKernel.MockingKernel'。派生类型必须与基类型的安全可访问性相匹配,或者难以访问。

我的初始化代码:

        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

1 回答 1

5

您是否使用 .Net 框架 >= 4.0?

看到这个对话

我从这些说明中得到了建议:我通过添加这一行修改了 MockingKernel 源代码

[程序集:System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

到项目 Ninject.MockingKernel 和 Ninject.MockingKernel.Moq 中的 AssemblyInfo.cs。然后我重新编译了解决方案,安装了dll,我的代码开始工作了!

我希望这是你的诀窍。

于 2013-02-25T05:31:04.413 回答