Я использую MonoDevelop на PC-BSD 10.1 и работаю с MongoDB 3.2. Я загрузил MongoDB.Driver (+ Bson & Core) от Nuget. Я могу сделать основной читает и пишет и пытается получить GridFS рабочих, следуя, что, как представляется, наиболее актуальным примером из StackOverflow:Использование GridFS с официальным драйвером C# в MonoDevelop
MongoDB GridFs with C#, how to store files such as images?
Во-первых, моя система не распознает (на первый взгляд) статический MongoServer класс, поэтому я перехожу к MognoClient для получения базы данных. Тогда я получаю следующее: «можно было бы узнать тип MongoDB.Driver.IMongoDatabase' does not contain a definition for
GridFS 'и без расширения метод GridFS' of type
MongoDB.Driver.IMongoDatabase.»
using System;
using System.IO;
using MongoDB;
using MongoDB.Driver;
using MongoDB.Driver.Core;
using MongoDB.Bson;
//using MongoDB.Driver.GridFS; -> an attempt to use the legacy driver.
namespace OIS.Objektiv.SocketServer
{
public class Gridfs
{
public Gridfs()
{
var server = MongoServer.Create("mongodb://localhost:27017");
var database = server.GetDatabase("test");
// var client = new MongoClient("mongodb://localhost:27017");
// var database = client.GetDatabase("test");
var fileName = "D:\\Untitled.png";
var newFileName = "D:\\new_Untitled.png";
using (var fs = new FileStream(fileName, FileMode.Open))
{
var gridFsInfo = database.GridFS.Upload(fs, fileName);
var fileId = gridFsInfo.Id;
ObjectId oid= new ObjectId(fileId);
var file = database.GridFS.FindOne(Query.EQ("_id", oid));
using (var stream = file.OpenRead())
{
var bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
using(var newFs = new FileStream(newFileName, FileMode.Create))
{
newFs.Write(bytes, 0, bytes.Length);
}
}
}
}
}
}
Что глупая ошибка я сделал? Есть ли у GridFS зависимость, которой я не хватает? Это должно сработать! :(
Dinsdale
Как использовать эту оболочку? –
Чтобы использовать старый API, вы должны получить MongoServer от MongoClient, а затем получить MongoDatabase от MongoServer. Если вы получаете MongoDatabase напрямую из MongoClient, вы будете использовать новый API. –