gpt4 book ai didi

asp.net-mvc - Ninject 3.0 MVC kernel.bind 错误自动注册

转载 作者:行者123 更新时间:2023-12-04 21:54:49 24 4
gpt4 key购买 nike

在 kernel.Bind( 扫描仪 => ...
在 VS 2010 中,“扫描仪”下面有一个小错误行。

Cannot convert lambda expression to type 'System.Type[]' because it is not a delegate type



Tyring 像 2.0 中的旧 kernel.scan 一样自动注册。
我不知道我做错了什么。添加和删​​除了这么多 Ninject 包。
完全迷失了,变得非常浪费时间。
using System;
using System.Web;

using Microsoft.Web.Infrastructure.DynamicModuleHelper;

using Ninject;
using Ninject.Web.Common;
//using Ninject.Extensions.Conventions;
using Ninject.Web.WebApi;
using Ninject.Web.Mvc;
using CommonServiceLocator.NinjectAdapter;
using System.Reflection;
using System.IO;
using LR.Repository;
using LR.Repository.Interfaces;
using LR.Service.Interfaces;
using System.Web.Http;

public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();

/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}

/// <summary>
/// Stops the application.
/// </summary>
public static void Stop()
{
bootstrapper.ShutDown();
}

/// <summary>
/// Creates the kernel that will manage your application.
/// </summary>
/// <returns>The created kernel.</returns>
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

RegisterServices(kernel);
return kernel;
}


/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{

kernel.Bind(scanner => scanner.FromAssembliesInPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))
.Select(IsServiceType)
.BindToDefaultInterface()
.Configure(binding => binding.InSingletonScope())
);

}

private static bool IsServiceType(Type type)
{
// temp return true;
// .Any() is not recognized either.
return true; // type.IsClass && type.GetInterfaces().Any(intface => intface.Name == "I" + type.Name);
}

最佳答案

你必须取消注释

//using Ninject.Extensions.Conventions;

关于asp.net-mvc - Ninject 3.0 MVC kernel.bind 错误自动注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10098883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com