c#中sql-connection类上单例模式的实现
Posted
技术标签:
【中文标题】c#中sql-connection类上单例模式的实现【英文标题】:Implementation of the Singleton pattern on the sql-connection class in c# 【发布时间】:2021-12-10 20:16:50 【问题描述】:我最近学习了单例模式,如何在sql-connection类上实现单例模式?以及如何将连接详细信息(数据库名称和表名称)传递给该 Singleton 的每个实例?
【问题讨论】:
实现单例模式是错误的。 “到该单例的每个实例”单例只有一个实例,这就是为什么它被称为单例。无论如何,如前所述,您永远不会尝试缓存数据库连接,您会产生一大堆其他问题 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:我尝试通过这种方式实现它:
public class SqlConnection
private static Dictionary<string, SqlConnection> _InsDictionary = new Dictionary<string, SqlConnection>();
private string _databaseName;
private string _tableName;
private SqlConnection(string databaseName,string tableName)
_databaseName = databaseName;
_tableName = tableName;
public static SqlConnection Ins(string databaseName,string tableName)
if (_InsDictionary.TryGetValue($"databaseName_tableName",out var ins))
ins = new SqlConnection(databaseName,tableName);
_InsDictionary.Add($"databaseName_tableName",ins);
return ins;
void Main()
SqlConnection sqlConnectionA = SqlConnection.Ins("db1","tb1");
SqlConnection sqlConnectionB = SqlConnection.Ins("db1","tb2");
【讨论】:
这不是单例。以上是关于c#中sql-connection类上单例模式的实现的主要内容,如果未能解决你的问题,请参考以下文章