我希望将 MVC .net应用连接到 Mongo数据库。所以我首先看一下documentation。
要配置连接,我必须在 MongoClient 类的构造函数中传递一个String:
var client = new MongoClient("mongodb://host:27017,host2:27017/?replicaSet=rs0");
问题是我正在使用 Castle Windsor 包来使用依赖注入而我是一个菜鸟。
我做的第一件事是在 Windsor容器中注册组件:
container.Register(Component.For<IMongoClient>()
.ImplementedBy<MongoClient>()
.LifeStyle.PerWebRequest);
我在 HomeController :
中传递了它 private IRowan _rowan;
private IMongoClient _mongoClient;
public HomeController(IRowan rowan, IMongoClient mongoClient)
{
_rowan = rowan;
_mongoClient = mongoClient;
}
我的问题是,如何在 MongoClient 的构造函数中传递String?
答案 0 :(得分:1)
尝试这样的事情......
container.Register(
Component.For<IMongoClient>().ImplementedBy<MongoClient>()
.DependsOn(Dependency.OnValue("connectionString", "mongodb://host:27017,host2:27017/?replicaSet=rs0"))
);
答案 1 :(得分:1)
使用Documentation中所述的UsingFactoryMethod
。它将在每个WebRequest上执行Func
并创建您的MongoClient
。
container.Register(Component.For<IMongoClient>()
.UsingFactoryMethod(
() => new MongoClient("mongodb://host:27017,host2:27017/?replicaSet=rs0"))
.LifeStyle.PerWebRequest);