2017-08-23 6 views
0

J'ai une API renvoyant des données JSON en réponse. Cette réponse est essentiellement des réponses à une enquête réalisée. Nous avons plusieurs enquêtes. Chaque enquête aura plusieurs questions qui peuvent être différentes des autres enquêtes. (Espoir je fais sens ici)Classe de modèle avec propriétés de variable

J'ai créé une classe de modèle à partir de la réponse que je reçois pour une de l'enquête comme suit: -

public string value1 { get; set; } 
    public string value2 { get; set; } 
    public string value3 { get; set; } 
    public string value4 { get; set; } 
    public int FileSystemObjectType { get; set; } 
    public int Id { get; set; } 
    public object someUrl1 { get; set; } 
    public string SomeUrl2 { get; set; } 
    public string TypeId { get; set; } 
    public string DifferentValue1 { get; set; } 
    public bool DifferentValue2 { get; set; } 
    public List<string> DifferentValue3 { get; set; } 
    public List<string> DifferentValue4 { get; set; 

Les propriétés DifferentValue1, DifferentValue2, DifferentValue3 .. sont les questions cela peut être différent pour chaque enquête. À l'heure actuelle, cette enquête comporte 4 questions, mais d'autres enquêtes peuvent avoir un nombre différent de questions. Le reste des propriétés reste identique tout au long des enquêtes.

Par exemple. Autre enquête peut avoir un modèle

public string value1 { get; set; } 
    public string value2 { get; set; } 
    public string value3 { get; set; } 
    public string value4 { get; set; } 
    public int FileSystemObjectType { get; set; } 
    public int Id { get; set; } 
    public object someUrl1 { get; set; } 
    public string SomeUrl2 { get; set; } 
    public string TypeId { get; set; } 
    public string DifferentValue1 { get; set; } 
    public bool DifferentValue2 { get; set; } 

Est-il possible que je peux faire une classe de modèle générique où les propriétés de la question peuvent être différentes, mais d'autres propriétés sont les mêmes?

Toute aide est appréciée.

Répondre

0

me semble un scénario typique de l'héritage ..

Créer une classe de base avec des propriétés que vous voulez avoir pour toutes les enquêtes et déduisons de cette classe et ajouter des propriétés pour les questions individuelles à cette classe d'enfants .

Exemple:

public class SurveyBase 
{ 
    public int Id { get; set; } 
    public string SomeUrl { get; set; } 
    public string TypeId { get; set; } 

    //... 
} 

public class Survey1 : SurveyBase 
{ 
    public string MyQuestion1 { get; set; } 
    public string MyQuestion2 { get; set; } 

    //.. 
} 

public class Survey2 : SurveyBase 
{ 
    public string OtherProperty { get; set; } 
    public int Whatever { get; set; } 

    //.. 
} 
+0

Merci pour la réponse. Pouvez-vous me donner un exemple pour cela? – user3034944