gpt4 book ai didi

c# - 使用字符串的依赖注入(inject)(ninject),反模式?

转载 作者:太空狗 更新时间:2023-10-29 19:39:22 25 4
gpt4 key购买 nike

我有一些代码使用 ninject 来注入(inject)依赖项,这些依赖项是实际的字符串。例如,这是注入(inject)字符串而不是创建新对象的反模式吗?

即我想注入(inject)用户名和密码,创建一个名为 credentials 的小类并注入(inject) Usernamd 和 Password 这两个属性实际上会更好吗?

可以通过以下方式将字符串注入(inject)构造函数

kernel.Bind<IUser>().To<User>()
.WithConstructorArgument(@"username", configuration.Username)
.WithConstructorArgument(@"password", configuration.Password);

这段代码有味道吗?

对我正在做的事情有什么想法或改进吗?

最佳答案

我更愿意在这里使用 ToMethod():

kernel.Bind<IUser>()
.ToMethod(ctx => new User(configuration.Username, configuration.Password));

如果 User 构造函数有其他依赖项,那么我会推迟@jgauffin 的回答。

您仍然可以将 ToMethod()Kernel 一起使用:

kernel.Bind<IUser>()
.ToMethod(ctx => new User(configuration.Username,
configuration.Password,
ctx.Kernel.Get<Foo>()));

关于c# - 使用字符串的依赖注入(inject)(ninject),反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18738433/

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