如何让 Unity3D 2018(或更高版本)与 MongoDB C# 驱动程序一起使用?

Ish*_*hat 2 unity-game-engine mongodb

我试图让 Unity3D 与 MongoDB 一起工作,但我遇到了太多版本兼容性问题。

我的 Unity 使用的是框架版本 4.6.1。使用从 NuGet 包管理器下载的 C# 驱动程序 2.8.0。MongoDB.Driver 包有两个 netstandard1.5 和 net452 文件夹。MongoDBDriver 有 net452 和 netstandard1.5。同样,还有 MongoDB.driver.Core.2.8.0、Dnsclient 和 MongoDB.Driver.GridFS 具有多个版本的框架特定 .dll。我的 Unity 设置为 .Net 4.x(脚本运行时版本)和 .Net 标准 2.0 API 兼容性。

有了这些,在编写脚本时无法识别 MongoDB 名称本身。

我从 GitHub (2.8.0) 下载了 C# 驱动程序代码并重新构建它。复制了 .dll 的 net 1.5 版本,但它也不起作用。

我从https://drive.google.com/file/d/16cLVJi0VZpplSS8MDnRcUeVnYuvxypBm/view获取了 .DLL 。它构建良好(运行时版本 .Net 3.5 和 API 兼容标准 2.0)。但它因“未知主机”而失败,可能是由于与 Dnsclient 的一些兼容性问题 - 由 MongoDB.Driver.core 使用。

如果有人知道正确的版本组合或构建过程,请告诉我要在 MongoDB C# 驱动程序代码中修改的特定代码 - 使其与 Unity3D 一起使用。

我在下面的链接中看到了有关 typeload 异常的答案。我也遇到过。但这并没有解决我的问题。 C# mod 依赖在实例化时抛出“TypeLoadException”?

jul*_*ian 6

所以现在再次解释:我已经想出了如何在 .Net 4.x 中运行 MongoDb。(Unity 18.3 和 19.1 已测试)您必须将这些 dll 包含在插件文件夹中:

DnsClient.dll  
MongoDB.Bson.dll  
MongoDB.Driver.Core.dll  
MongoDB.Driver.dll  
System.Buffers.dll  
Run Code Online (Sandbox Code Playgroud)

连接到数据库(替换用户名、密码、DATABASE_NAME 和 localhost(仅限本地主机,如果您在别处托管数据库)):

using MongoDB.Driver;

private const string MONGO_URI = "mongodb://username:password@localhost:27017";
private const string DATABASE_NAME = "testDatabase";
private MongoClient client;
private IMongoDatabase db;

client = new MongoClient(MONGO_URI);
db = client.GetDatabase(DATABASE_NAME);
Run Code Online (Sandbox Code Playgroud)

您可以在我的 github 上下载 dll:https : //github.com/Julian23517/Unity-mongo-csharp-driver-dlls我尽量让它保持最新状态。