gpt4 book ai didi

c# - 从 Web.config 读取 Ninject WithConstructorArguments

转载 作者:行者123 更新时间:2023-11-30 12:11:47 26 4
gpt4 key购买 nike

我有以下 RegisterServices 函数:

private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ISearchRepository>().To<SearchRepository>();
kernel.Bind<ITagRepository>().To<TagRepository>();
kernel.Bind<IStore>().To<Store>()
.WithConstructorArgument("dbId", ConfigurationManager.AppSettings["DatabaseId"])
}

使用断点,我可以确认 ConfigurationManager 正在正确填充值。

但是,当内核完成绑定(bind)时,运行时出现以下异常:

enter image description here

如果我用常量替换 ConfigurationManager 引用,应用程序运行正常。

我不想失去通过配置文件配置 Ninject 的能力,这是 Ninject 的限制吗?

最佳答案

不,Ninject 没有这样的限制。

我想问题是 ConfigurationManager.AppSettings["DatabaseId"] 返回 string 而你的 dbId 参数是 类型int(或其他一些非字符串类型)。

尝试:

var databaseId = Int32.Parse(ConfigurationManager.AppSettings["DatabaseId"]); 
kernel.Bind<IStore>()
.To<Store>()
.WithConstructorArgument("dbId", databaseId);

关于c# - 从 Web.config 读取 Ninject WithConstructorArguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14697038/

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