2016-05-02 7 views
0

Ist DocumentDb intelligent genug, um Eigenschaften auf einem Dokument korrekt zu speichern und zu hydratisieren, die Schnittstellen sind? MongoDb erledigt das wunderbar, indem es den Typ in einem Feld innerhalb des Dokuments auf dem Server speichert.DocumentDB-Schnittstelleneigenschaften

public class Customer 
{ 
    public string Name{get;set;} 

    // Does this work correctly when saving and retrieving? 
    public IPolicy Policy{get;set;} 
} 

public interface IPolicy 
{ 
    decimal Rate{get;set;} 
} 

public MagicPolicy : IPolicy 
{ 
    public decimal Rate{get;set;} 
} 

public SuperPolicy : IPolicy 
{ 
    public decimal Rate{get;set;} 
    public string ImAnExtraProperty{get;set;} 
} 

Antwort

1

Die Antwort ist ja! Aber nicht out of the box. Es verwendet Newtonsoft.Json zum Serialisieren. So können Sie die Magie passieren, indem Sie die Serializer-Einstellungen anpassen:

JsonConvert.DefaultSettings =() => 
{ 
    return new JsonSerializerSettings() 
    { 
     TypeNameHandling = TypeNameHandling.Auto 
    }; 
};