4

ASP.NET MVCアプリでNinjectでMongoDB公式C#ドライバーを使用するためのベストプラクティスに従うコード例を持っている人はいますか?

私のはこのように見えます:

namespace WebApp
{
    public class DataModule : NinjectModule
    {
        public override void Load()
        {
            var conventions = new ConventionProfile().SetElementNameConvention(new CamelCaseElementNameConvention());
            BsonClassMap.RegisterConventions(conventions, x => true);

            var server = MongoServer.Create(connectionString);
            var database = server.GetDatabase("webapp");
            Bind<MongoDatabase>().ToConstant(database);
        }
    }
}

このコードはシングルトンなので、私はそれについて悪い感じがします:|

ありがとう

4

1 に答える 1

8

MongoServerは、シングルトンとして保持するのに問題ありません。同じことがMongoDatabaseにも当てはまります。これらは両方ともスレッドセーフであり、毎回新しいMongoServerとMongoDatabaseを作成しても、接続文字列が完全に同じである限り、それらは下にキャッシュされるため、同じインスタンスが返されます。

于 2012-07-06T00:18:04.600 に答える