c#.net中的单例模式是正确的吗? [英] Singleton pattern in c#.net is this correct way?
本文介绍了c#.net中的单例模式是正确的吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public sealed class GetDBInstance
{
private static readonly object padlock = new 对象跨度>();
private static DBCon _ObjInstance;
public GetDBInstance(){}
public static DBCon InstanceCon
{
get
{
if (_ObjInstance == null )
{
< span class =code-keyword> lock (挂锁)
{
if (_ObjInstance == null )
_ObjInstance = new DBCon();
_ObjInstance.strConnection = ConfigurationManager.ConnectionStrings [ ConnectionString]。ConnectionString;
}
}
return _ObjInstance;
}
}
}
public class DBCon
{
public string strConnection { get ; set ; }
}
使用(SqlConnection connection = new SqlConnection(GetDBInstance.InstanceCon.strConnection))
解决方案
删除你的单例并使用
使用(SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings) [ConnectionString]。ConnectionString))
使用单例返回只读配置值没有多大意义
public sealed class GetDBInstance
{
private static readonly object padlock = new object();
private static DBCon _ObjInstance;
public GetDBInstance() { }
public static DBCon InstanceCon
{
get
{
if (_ObjInstance == null)
{
lock (padlock)
{
if (_ObjInstance == null)
_ObjInstance = new DBCon();
_ObjInstance.strConnection = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
}
}
return _ObjInstance;
}
}
}
public class DBCon
{
public string strConnection { get; set; }
}
using (SqlConnection connection = new SqlConnection(GetDBInstance.InstanceCon.strConnection))
解决方案
Drop your singleton and just use
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
Using a singleton to return read-only config values doesn't make a lot of sense.
这篇关于c#.net中的单例模式是正确的吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文