gpt4 book ai didi

inversion-of-control - Ninject 和 Log4Net

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

我似乎无法让 ninject 自动创建 ILogger 的实例。我在我的测试应用程序中设置了 log4net 并正确配置了,但是由于某种原因,当我实例化 IHouseholdRepository 时,它无法运行 ILogger。

根据这篇文章,我已经完成了我需要做的一切: How To Properly Configure Ninject.Extensions.Logging.Log4Net in my MVC3 project

[TestMethod]
public void TestMethod1()
{
var kernel = new StandardKernel();
kernel.Bind<IHouseholdRepository>().To<HouseholdRepository>();

var repo = kernel.Get<IHouseholdRepository>();
var hh = repo.Find(123456);
}

public HouseholdRepository(ILogger logger, string username)
{
_logger = logger;
_username = username;
_dbContext = new HouseholdDbContext(logger); // I want to couple my HouseholdDBContect to my repository as it's not going to work with any other DbContext
}

我得到的错误是:

测试方法 Rxxx.Tests.LoggingTester.TestMethod1 抛出异常:Ninject.ActivationException:激活 ILogger 时出错没有匹配的绑定(bind)可用,并且该类型不可自绑定(bind)。激活路径: 2) 将依赖 ILogger 注入(inject)到 HouseholdRepository 类型的构造函数的参数记录器中 1) 请求 IHouseholdRepository

建议: 1) 确保您已为 ILogger 定义了绑定(bind)。 2) 如果绑定(bind)是在模块中定义的,请确保该模块已加载到内核中。 3) 确保您没有意外创建多个内核。 4) 如果您使用构造函数参数,请确保参数名称与构造函数参数名称匹配。 5) 如果您使用自动加载模块,请确保搜索路径和过滤器正确。

最佳答案

我刚遇到同样的问题,发现是因为我忘了添加 Ninject.Extensions.Logging.Log4net nuget 包。

关于inversion-of-control - Ninject 和 Log4Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18745299/

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