MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Предаване на информация за типа към MongoDB, така че да може правилно да десериализира типове интерфейси?

В резултат на MyClass сочейки към тип интерфейс, който след това може да съдържа всеки клас' Bson, който имплементира този интерфейс, ние трябва да кажем на MongoDB типа клас', който може в края на този (всички) интерфейс. След това може да заключи от класовете, че знае как да десериализира определени BsonDocuments съдържащ тези класове Bson.

public interface IMyInterface
{
    String Name { get; set; }
}

public class MyIntImpl : IMyInterface
{
    public String Name { get; set; }
}

public class MyClass
{
    public IMyInterface IntRef { get; set; }

    public MyClass()
    {
        IntRef = new MyIntImpl();
    }
}

// When starting up MongoDB
private void RegisterClasses()
{
    BsonClassMap.RegisterClassMap<MyIntImpl>();
}

Чрез добавяне на клас MyIntImpl към BsonClassMap вече знае как да десериализира Bson от този тип клас. Просто трябва да се уверите, че поддържате картата пълна с класове, които имплементират интерфейси, които може да сериализирате.

Някои справочни връзки:Високо до ниско ниво преглед на C# MongoDB сериализация , пост SO който очертава решението.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изключите някои полета от документа

  2. Кой API на Python трябва да се използва с Mongo DB и Django

  3. Агрегирайте резултатите от MongoDB по дата на ObjectId

  4. Как мога да променя полето _id в MongoDB Collection на User_id?

  5. Как да актуализирате един обект с кръпка RESTHeart?