C# 使用MongoDatabase类代替MongoDatabaseImpl

C# 使用MongoDatabase类代替MongoDatabaseImpl,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我需要通过Mongo C#驱动程序设置评测级别 Client.GetDatabase(“test”)返回IMongoDatabase接口,该接口在运行时解析为MongoDB.Driver.MongoDatabaseImpl 根据MongoDatase类有一个SetProfilingLevel方法,我无法在运行时强制转换该方法 顺便说一句,我还安装了旧版驱动程序版本2.0.1,因为其中说明了SetProfilingLevel方法。此方法确实存在于旧版驱动程序中。因此,首先安装旧版,然后: var

我需要通过Mongo C#驱动程序设置评测级别

Client.GetDatabase(“test”)
返回
IMongoDatabase
接口,该接口在运行时解析为
MongoDB.Driver.MongoDatabaseImpl

根据
MongoDatase
类有一个
SetProfilingLevel
方法,我无法在运行时强制转换该方法


顺便说一句,我还安装了旧版驱动程序版本2.0.1,因为其中说明了
SetProfilingLevel
方法。

此方法确实存在于旧版驱动程序中。因此,首先安装旧版,然后:

var client = new MongoServer(new MongoServerSettings());
var db = client.GetDatabase("db_name");
db.SetProfilingLevel(ProfilingLevel.All);
新的MongoDB驱动程序(至少2.3版)没有更改分析级别的特定方法。
但是您可以使用
RunCommandAsync
执行任何命令

public async Task SetProfilingLevelAsync(IMongoDatabase database, int level)
{
    var command = new BsonDocumentCommand<BsonDocument>(new BsonDocument("profile", level));
    await database.RunCommandAsync(command);
}
public async Task SetProfilingLevelAsync(IMongoDatabase数据库,int级)
{
var命令=新的BsonDocumentCommand(新的BsonDocument(“概要文件”,级别));
wait database.RunCommandAsync(命令);
}

您可能还需要添加可选的slowms参数。