Paquetes de convenciones mongodb

¿Cómo se utiliza un mongodb ConventionPack en c #? Tengo el siguiente código:

MongoDatabase Repository = Server.GetDatabase(RepoName); this.Collection = Repository.GetCollection(CollectionName); var myConventions = new ConventionPack(); myConventions.Add(new CamelCaseElementNameConvention()); 

¿Se adjunta automáticamente el paquete de convenciones a esta colección? Cuando cargue un nuevo objeto, ¿persistirá automáticamente en este caso? ¿Tengo que agregar tags en mi statement de clase (como un contrato de datos)?

Es necesario registrar el paquete en el ConventionRegistry :

 var pack = new ConventionPack(); pack.Add(new CamelCaseElementNameConvention()); ConventionRegistry.Register("camel case", pack, t => t.FullName.StartsWith("Your.Name.Space.")); 

Si desea aplicar esto globalmente, puede reemplazar el último parámetro con algo más simple como t => true .

Código de muestra de trabajo que serializa y des-serializa (controlador 1.8.20, mongodb 2.5.0):

 using System; using System.Linq; using MongoDB.Bson; using MongoDB.Bson.Serialization.Conventions; using MongoDB.Driver; namespace playground { class Simple { public ObjectId Id { get; set; } public String Name { get; set; } public int Counter { get; set; } } class Program { static void Main(string[] args) { MongoClient client = new MongoClient("mongodb://localhost/test"); var db = client.GetServer().GetDatabase("test"); var collection = db.GetCollection("Simple"); var pack = new ConventionPack(); pack.Add(new CamelCaseElementNameConvention()); ConventionRegistry.Register("camel case", pack, t => true); collection.Insert(new Simple { Counter = 1234, Name = "John" }); var all = collection.FindAll().ToList(); Console.WriteLine("Name: " + all[0].Name); } } }