2016-07-19 5 views
0

null ist habe ich ein Modell wie folgt aus:einen Standardwert Put, wenn die Zeichenfolge während Deserialisieren

public class Artwork 
{ 
    public string small { get; set; } 
    public string medium { get; set; } 
    public string large { get; set; } 
    public string @default { get; set; } 
} 

Ich benutze dieses Modell Kunstwerk Pfad deserialisieren. Wenn eine dieser Zeichenfolgen null ist, möchte ich einen Standardpfad angeben, damit ich weiterhin ein Bild anzeigen kann. Ich habe versucht, einige Attribut von Json.net libray zu verwenden:

[DefaultValue("path/to/any/picture")] 
[JsonProperty(DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)] 

Aber es funktioniert nicht, wenn Deserialisieren es eine „System.NullReferenceException“ wirft.

Wie kann ich diese Bilder anzeigen, wenn ich einen Pfad beim Deserialisieren bekomme und ein Standardbild anzeigen, wenn der Pfad null ist?

+0

zu lösen Was ist das letzte, was Sie mit 'Artwork' tun, wenn Ihr C# es Verarbeitung fertig ist? Ist es Teil des Ansichtsmodells, das Sie von Ihrem Controller zurückgeben? Serialisieren Sie es manuell mit 'JsonConvert.SerializeObject'? –

+0

ich verbinde es aus meiner Sicht ({Binding artwork.medium}). Ich bin nicht serialisieren manuell, ich mache nur JsonConvert.DeserializeObject (e.result), SearchArtist ist ein weiteres Modell mit Artwork – keledrame

+0

können Sie eine [SSCCE] (http://sscce.org/)? –

Antwort

0

ich es geschafft, mein Problem zu tun wie dieses

public class Artwork 
{ 
    private static string defaultAtwork = "https://pixabay.com/static/uploads/photo/2016/01/06/07/06/bokeh-1123696_960_720.jpg"; 
    private string _small = defaultAtwork; 
    private string _medium = defaultAtwork; 
    private string _large = defaultAtwork; 
    private string _default = defaultAtwork; 

    public string small 
    { 
     get { return _small; } 
     set { _small = value; } 
    } 
    ... 
} 

public class Album 
{ 
    private Artwork _artwork = new Artwork(); 
    [JsonProperty(NullValueHandling = NullValueHandling.Include)] 
    public Artwork artwork 
    { 
     get { return _artwork; } 
     set { _artwork = value; } 
    } 
Verwandte Themen