gpt4 book ai didi

c# - 在 IoC 模式中将连接字符串之类的东西保存在哪里?

转载 作者:太空狗 更新时间:2023-10-29 23:11:43 27 4
gpt4 key购买 nike

在我永恒的追求中,我正在检查 mvc Turbine 来完成 IoC 肮脏的工作。
我使用 mvc Turbine nerd dinner 示例作为引导,到目前为止,事情看起来相当合乎逻辑。虽然我在这里指的是涡轮机项目,但我猜它背后的理念对模式来说是普遍的对于一些阅读和罕见的播客来说是安全的,我是 IoC 概念的新手,我有几个问题。

到目前为止,对于我要注册的每个 IRepository,我都有一个 IServiceRegistration 条目
例如:

public class UserRepositoryRegistration : IServiceRegistration
{
public void Register(IServiceLocator locator)
{
locator.Register<IUserRepository, UserRepository>();
}
}

IUserRepository 的具体实现需要一些配置。类似于连接字符串或在本例中为要使用的 db4o 文件的路径。

我应该在哪里以及向谁提供这些信息?

最佳答案

罗伯特和卢卡斯的回答一针见血。该帐户的所有“额外内容”都将存在于 UserRepository 类中。这是目前 Turbine ND 的实现方式。

但是,没有什么可以阻止您创建一个名为 ConnectionStringProvider 的新类,然后可以将其“注入(inject)”到您的 UserRepository 中,它将提供连接字符串(无论是硬编码还是从配置文件中读取)。

代码可以如下:

public class ConnectionStringProvider {
public string ConnectionString {
get{
// your impl here
}
}
}

public class UserRepository {
public UserRepository(ConnectionStringProvider provider){
// set internal field here to use later
// with db connection
}
}

从这里开始,您可以在 UserRepositoryRegistration 类中添加 ConnectionStringProvider 的注册,Turbine 将为您处理剩下的事情。

关于c# - 在 IoC 模式中将连接字符串之类的东西保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833938/

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