• c# 单例模式传参且线程安全


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 stevenjin 2024-08-05 10:34 采纳率: 100% 浏览 19 首页/ 编程语言 / 已结题 c# 单例模式传参且线程安全 c#单例模式 1.用c#构建数据库访问类2.采用单例模式,要求能传参且是在线程安全模式下访问 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • stevenjin 2024-08-05 11:11
      关注

      之前这样写的

      
              private string ConnectionString = string.Empty;
              private static DapperHelper instance;
              public static DapperHelper Instance
              {
                  get
                  {
                      if(instance == null)
                      {
                          lock(instanceObj)
                          {
                              if(instance == null)
                              {
                                  instance = new DapperHelper();
                              }
                          }
                      }
                      return instance;
                  }
              }
              #endregion
      
              public DapperHelper()
              {
                  ConnectionString = GetConnectionString();
              }
      
      
              public MySqlConnection MySQLConnection(string connstring)
              {
                  using(this.mysqlDBConn = new MySqlConnection(connstring))
                  {
                      return this.mysqlDBConn;
                  }
              }
      
              public string GetConnectionString(string ip = "127.0.0.1")
              {
                  ConfigurationBuilder configuration = new ConfigurationBuilder();
                  string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
                  string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
      
                  var config = configuration.SetBasePath(assemblyDirPath).AddJsonFile(file =>
                  {
                      file.Path = "/appsettings.json";
                      file.Optional = false;
                      file.ReloadOnChange = true;
                  }).Build();
                  return string.Format(config.GetConnectionString("mssql"), ip);            
              }
      

      展开全部

      本回答被题主选为最佳回答 , 对您是否有帮助呢?
      评论
      wanghui0380 2024-08-05 11:24

      参考httpClientFactory
      资料:
      https://learn.microsoft.com/zh-cn/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests

      IHttpClientFactory 的多种用法
      可以通过多种方法在应用程序中使用 IHttpClientFactory:

      1基本用法
      2使用命名客户端
      3使用类型化客户端
      4使用生成的客户端

      啥意思呢,就是可以命名,可以类型,可以用生成。httpclient baseurl不同把,是不是跟你的conn不同是一样要求。

      当然你可以不用那么复杂和完备,假设我们用key做简单命名。

      那么基本代码是:

      dbfactory{
            线程安全字典<string,lazy> dic
          
           dbclient(conn="") {
                  //去线程安全字典查到那个lazy,然后返回value
                //如果没查到就添加一个,接着返回value
      }
      }
      
      

      回复
    查看更多回答(1条)
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    点击化学修饰糖TCO-PEG-alginate 反式环辛烯-聚乙二醇-海藻酸钠 (TCO-PEG-半乳糖,乳糖基,纤维二糖,葡萄糖)
    六级高频词汇——Group07
    4-8网络层-网络层设备
    android_logcat_4.4
    目标框选之单阶段与两阶段目标检测区别
    【数据结构】带头双向循环链表
    Linux下的编辑器——Vim
    33、菜谱大全API接口,免费好用
    kafka简单测试以及可视化界面安装
    产品生命周期(PLM)发展历程及技术核心分析指导
  • 原文地址:https://ask.csdn.net/questions/8135148