MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przekazywanie informacji Type do MongoDB, aby mogła poprawnie deserializować typy interfejsów?

W wyniku MyClass wskazując na typ interfejsu, który może następnie przechowywać dowolną klasę Bson, która implementuje ten interfejs, musimy powiedzieć MongoDB typ klasy, która może znajdować się na końcu tego (całego) interfejsu. Następnie może wywnioskować z klas, że wie, jak deserializować określone BsonDocuments zawierające Bson tej klasy.

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>();
}

Dodając klasę MyIntImpl do BsonClassMap teraz wie, jak deserializować Bson z tego typu klasy. Musisz tylko upewnić się, że mapa jest wypełniona klasami, które implementują interfejsy, które możesz serializować.

Niektóre linki referencyjne:Od wysokiego do niskiego poziomu omówienie serializacji C# MongoDB , post SO który przedstawia rozwiązanie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyjaśnij, że mam pięć lat:Formularz z polem tekstowym i obrazowym> Trasy> Kontroler> Zapis do dokumentu MongoDB - Gdzie jest GridFS?

  2. MongoDB Unique Index na elemencie tablicy w dokumentach (nie w zagnieżdżonych dokumentach)

  3. Jak obsługiwać dzielenie przez zero w frameworku agregacyjnym MongoDB

  4. MongoDB:obniżona wydajność zapytań

  5. Utwórz indeks wielokluczowy w MongoDB