Ninject在MVC3中生成TypeLoadException

时间:2013-02-13 15:29:23

标签: c# asp.net-mvc-3 ninject

我正在尝试使用Ninject和MVC执行以下测试方法:

    [TestMethod]
    public void CreateEntityTest()
    {
        using (IKernel kernel = new StandardKernel())
        {
            kernel.Bind<IAccountControllerHelper>().To<AccountControllerHelper>();

            var a = kernel.Get<IAccountControllerHelper>();
            var p = a.GetPerson("jude-test-user-20130120");
            Assert.AreEqual(3, p.FriendlyId);
        }
    }

并产生以下错误:

  

测试方法   YellowLlama.Web.Tests.AccountControllerHelperTests.CreateEntityTest   抛出异常:System.TypeLoadException:继承安全规则   违反了类型:'Ninject.Web.Mvc.Filter.FilterContextParameter'。   派生类型必须与基础的安全可访问性匹配   键入或不太容易访问。在   System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly   assembly,ObjectHandleOnStack retTypes)at   System.Reflection.RuntimeAssembly.GetExportedTypes()at   Ninject.Infrastructure.Language.ExtensionsForAssembly.HasNinjectModules(大会   装配)in   C:\项目\ Ninject \ ninject的\ src \ Ninject \基础设施\语言\ ExtensionsForAssembly.cs:   Ninject.Modules.CompiledModuleLoaderPlugin.b__0第25行(汇编   asm)in   C:\项目\ Ninject \ ninject \ SRC \ Ninject \模块\ CompiledModuleLoaderPlugin.cs:   第81行   Ninject.Modules.AssemblyNameRetriever.AssemblyChecker.GetAssemblyNames(IEnumerable1   文件名,Predicate1过滤器)   C:\项目\ Ninject \ ninject \ SRC \ Ninject \模块\ AssemblyNameRetriever.cs:   第114行   Ninject.Modules.AssemblyNameRetriever.AssemblyChecker.GetAssemblyNames(IEnumerable1   文件名,Predicate1过滤器)at   Ninject.Modules.AssemblyNameRetriever.GetAssemblyNames(IEnumerable1   文件名,Predicate1过滤器)   C:\项目\ Ninject \ ninject \ SRC \ Ninject \模块\ AssemblyNameRetriever.cs:   第54行   Ninject.Modules.CompiledModuleLoaderPlugin.LoadModules(IEnumerable1   文件名)   C:\项目\ Ninject \ ninject \ SRC \ Ninject \模块\ CompiledModuleLoaderPlugin.cs:   Ninject.Modules.ModuleLoader.LoadModules(IEnumerable1)第81行   模式)   c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Modules \ ModuleLoader.cs:line   60在Ninject.KernelBase.Load(IEnumerable`1 filePatterns)中   c:\ Projects \ Ninject \ ninject \ src \ Ninject \ KernelBase.cs:第236行   Ninject.KernelBase..ctor(IComponentContainer组件,   INinjectSettings设置,INinjectModule [] modules)   c:\ Projects \ Ninject \ ninject \ src \ Ninject \ KernelBase.cs:第89行at at   Ninject.KernelBase..ctor(INinjectModule [] modules)中   c:\ Projects \ Ninject \ ninject \ src \ Ninject \ KernelBase.cs:第57行at   Ninject.StandardKernel..ctor(INinjectModule [] modules)in   c:\ Projects \ Ninject \ ninject \ src \ Ninject \ StandardKernel.cs:第46行at   YellowLlama.Web.Tests.AccountControllerHelperTests.CreateEntityTest()   在AccountControllerHelperTests.cs中:第18行

我已经浏览过网络,并尝试了一些我找不到的建议。

0 个答案:

没有答案