C# Ninject';s AllowNullInjection在ASP.NET WCF中不工作
我正在ASP.NET WCF项目中使用以下Ninject的NuGet软件包:C# Ninject';s AllowNullInjection在ASP.NET WCF中不工作,c#,asp.net,wcf,ninject,C#,Asp.net,Wcf,Ninject,我正在ASP.NET WCF项目中使用以下Ninject的NuGet软件包: 尼尼特 Ninject.Web.Common Ninject.Web.Common.WebHost Ninject.Extensions.Wcf 我的WCF服务FooService依赖于IRepository,它有一个具体的实现foosrepository,如下所示: [ServiceContract] public interface IFooService { [OperationContract]
- 尼尼特
- Ninject.Web.Common
- Ninject.Web.Common.WebHost
- Ninject.Extensions.Wcf
FooService
依赖于IRepository
,它有一个具体的实现foosrepository
,如下所示:
[ServiceContract]
public interface IFooService
{
[OperationContract]
IEnumerable<Foo> GetFoos();
}
public class FooService : IFooService
{
private readonly IRepository _repository;
public FooService(IRepository repository)
{
_repository = repository;
}
}
public class FooRepository : IRepository
{
private readonly FooContext _fooContext;
private readonly ILogger _logger;
public FooRepository(FooContext fooContext, ILogger logger)
{
_fooContext = fooContext;
_logger = logger;
}
}
private static void RegisterServices(IKernel kernel)
{
kernel.Settings.AllowNullInjection = true;
kernel.Bind<IRepository>().To<FooRepository>().InRequestScope();
// I want to bind null to ILogger through the Settings property
// instead of manually calling Bind<ILogger>().ToConstant<ILogger>(null)
}
我在NinjectWebCommon.cs
中设置依赖项,如下所示:
[ServiceContract]
public interface IFooService
{
[OperationContract]
IEnumerable<Foo> GetFoos();
}
public class FooService : IFooService
{
private readonly IRepository _repository;
public FooService(IRepository repository)
{
_repository = repository;
}
}
public class FooRepository : IRepository
{
private readonly FooContext _fooContext;
private readonly ILogger _logger;
public FooRepository(FooContext fooContext, ILogger logger)
{
_fooContext = fooContext;
_logger = logger;
}
}
private static void RegisterServices(IKernel kernel)
{
kernel.Settings.AllowNullInjection = true;
kernel.Bind<IRepository>().To<FooRepository>().InRequestScope();
// I want to bind null to ILogger through the Settings property
// instead of manually calling Bind<ILogger>().ToConstant<ILogger>(null)
}
在这种情况下,如何设置可选注入