Ninject:System.Security.VerificationException:操作可能会破坏运行时的稳定性

时间:2012-03-10 14:52:35

标签: .net nunit ninject code-coverage sharpdevelop

我有以下代码,在执行测试时效果很好。

但是后来我尝试运行这些测试+代码覆盖率计算(SharpDevelop 4) 它抛出异常。

有人可以说明为什么会这样吗?

  

SetUp:System.Security.VerificationException:操作可以   破坏运行时的稳定性。

  [TestFixture]
  public class NinjectExamplesTest
  {
    private interface IExampleInterface
    {

    }

    private class ExampleInterfaceImplementation : IExampleInterface
    {

    }

    private class ExampleClass
    {
      [Inject]
      public IExampleInterface ExampleProperty { get; set; }
    }      

    IKernel kernel;   

    [SetUp]
    public void Init()
    {
      kernel = new StandardKernel();
      kernel.Bind<IExampleInterface>().To<ExampleInterfaceImplementation>();
    }

    [Test]
    public void TestStandardResolving()
    { 
      // setup

      // business
      var result = kernel.Get<IExampleInterface>();

      // verify
      result.Should().NotBeNull();
      result.Should().BeOfType<ExampleInterfaceImplementation>();
    }

    [Test]
    public void TestPropertyResolving()
    {
      // setup
      var exampleClass = new ExampleClass();

      // business
      kernel.Inject(exampleClass);

      // verify
      exampleClass.ExampleProperty.Should().NotBeNull();
      exampleClass.ExampleProperty.Should().BeOfType<ExampleInterfaceImplementation>();
    }
  }

1 个答案:

答案 0 :(得分:2)

SharpDevelop使用PartCover来执行代码覆盖。当使用known issue或类似的程序集运行时,这看起来可能与AllowPartiallyTrustedCallersAttribute(参见结尾)有关。

此修复程序应包含在最新的维护版本中,但我不知道SharpDevelop是否已打包最新版本。