2012-05-11 29 views
3

Couchbase净手册说,我可以配置这样我的客户:在.NET的app.config Couchbase多个桶

<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几夭桶,然后切换他们在我的应用程序?

回答

4

根据约翰的建议,我用这样的配置:

<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> 

然后在应用程序代码,您可以得到桶的客户:

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

这将是很好,如果净couchbase库的开发实施阅读这样的配置。

0

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

我们可以使用CouchbaseClient构造函数重载并传入bucketname和密码。例如:var client = new CouchbaseClient(“default”,“”);

不需要将所有存储区配置文件放在应用程序或web.cong文件中。

+1

建议的替代方法http://stackoverflow.com/questions/10600486/multiple-couchbase-bucket-configuration-in-net/10645617#10645617 –

+0

是的。我使用这个解决方案(我为自己的Dictionary创建了一个桶的字典()),但是通过这种方式,桶被“硬编码”。现在我正在考虑用bucket配置编写自己的xml文件,然后解析它。 – m03geek