我正在尝试使用 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 程序集,ObjectHandleOnStack retTypes) 在 System.Reflection.RuntimeAssembly.GetExportedTypes() 在 Ninject.Infrastructure.Language.ExtensionsForAssembly.HasNinjectModules(Assembly 程序集) 在 c:\Projects\Ninject\ninject\src \Ninject\Infrastructure\Language\ExtensionsForAssembly.cs:C:\Projects\Ninject\ninject\src\Ninject\Modules\CompiledModuleLoaderPlugin.cs 中 Ninject.Modules.CompiledModuleLoaderPlugin.b__0(Assembly asm) 的第 25 行:
我已经在网上搜索并尝试了一些我发现无济于事的建议。