我正在尝试使用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行
我已经浏览过网络,并尝试了一些我找不到的建议。