我正在基于ESENT数据库引擎(使用ManagedEsent互操作层)实现通用的持久.NET集合。到目前为止,我一直专注于完全模仿他们的System.Collections.Generic对应的类,除了他们在构造函数中采用指示数据库应该去的位置的路径。这样的代码有效:
using Microsoft.Isam.Esent.Collections.Generic;
static void Main(string[] args)
{
var dictionary = new PersistentDictionary<string, string>("Names");
Console.WriteLine("What is your first name?");
string firstName = Console.ReadLine();
if (dictionary.ContainsKey(firstName))
{
Console.WriteLine("Welcome back {0} {1}", firstName, dictionary[firstName]);
}
else
{
Console.WriteLine("I don't know you, {0}. What is your last name?", firstName);
dictionary[firstName] = Console.ReadLine();
}
}
我的问题是:
我将在下周准备第一个版本,但我想确保我正在构建正确的东西。
答案 0 :(得分:4)
我在Codeplex上发布了PersistentDictionary。这仅支持序列化结构,但我将使用支持存储和检索任意对象的不同数据结构。
答案 1 :(得分:3)
键上可以接受类型限制,但是在值上,我希望[Serializable]
的任何内容都能正常工作。否则,有什么意义呢?像Dictionary<int, string>
这样的简单案例在教科书中比在现实世界中更常见。