【问题标题】:Couchbase multiple buckets in .NET app.configCouchbase .NET app.config 中的多个存储桶
【发布时间】:2012-05-20 05:11:40
【问题描述】:

Couchbase .Net 手册说我可以这样配置我的客户端:

<couchbase><servers bucket="default" bucketPassword="">
  <add uri="http://192.168.0.2:8091/pools/default"/>
  <add uri="http://192.168.0.3:8091/pools/default"/>
</servers></couchbase>

有没有办法在 app.config 中定义多个存储桶,然后在我的应用程序中切换它们?

【问题讨论】:

    标签: .net app-config couchbase


    【解决方案1】:

    我找到了解决上述问题的方法。

    我们可以使用 CouchbaseClient 构造函数重载并传入存储桶名称和密码。 例如:var client = new CouchbaseClient("default","");

    不需要将所有的bucket配置都放在app或web.cong文件中。

    【讨论】:

    • 是的。我使用这个解决方案(我为自己创建了一个存储桶字典 Dictionary(,)),但是这样存储桶是“硬编码的”。现在我正在考虑使用存储桶配置编写自己的 xml 文件,然后对其进行解析。
    【解决方案2】:

    根据John的建议,我使用了这样的配置:

    <configuration>
      <configSections>
        <sectionGroup name="couchbase">
          <section name="bucket-1" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/>
          ...
          <section name="bucket-N" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/>
        </sectionGroup>
      </configSections>
      ...
      <couchbase>
        <bucket-1>
          <servers bucket="bucket-1" bucketPassword="pass">
            <add uri="http://10.0.0.1:8091/pools/default"/>
            <add uri="http://10.0.0.2:8091/pools/default"/>
          </servers>
        </bucket-1>
      </couchbase>
      ...
    </configuration>
    

    然后在应用代码中你可以得到bucket的客户端:

    var client = new CouchbaseClient((CouchbaseClientSection)ConfigurationManager.GetSection("couchbase/bucket-1"));
    

    如果 .Net couchbase 库的开发者实现读取这样的配置就好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多