2014-04-21 8 views
7

Ich benutze Json Serializer und muss an eine Eigenschaft namens "Ereignis" binden Natürlich ist Ereignis ein Schlüsselwort in C#, so etwas wie string event { get; set; } ist nicht erlaubt. Gibt es das überhaupt, um das zu tun? Ich kann den Namen des Objekts, das zu mir zurückkommt, nicht ändern.C# Eigenschaft namens Ereignis

Antwort

11

Angenommen, Sie verwenden Json.NET, können Sie die JsonProperty attribute verwenden oder den @ symbol oder mit einem ContractResolver (es gibt einen eingebauten in eine, die Dinge macht Camelcase, so ein Eigenschaftsname von Event würde serialisiert zu event).

[JsonProperty("event")] 
public string Event { get; set; } 


public string @event { get; set; } 


public string Event { get; set; } 

var s = JsonConvert.SerializeObject(myObj, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); 
+1

+1 für die 'JsonProperty', die die Notwendigkeit vermeidet, mit' @ 'inging alles zu verpatzen. Natürlich wird es immer eine arme Seele geben, die in VB schreiben muss, also ist "Event" auch für sie tabu und sie müssen '[Event]' schreiben, um das zu umgehen, und werden sich deshalb beschweren hätte eigentlich ein anderes Wort gebraucht. – ClickRick

11

Verwenden @ zu verwenden keywords as identifiers

string @event { get; set; } 

Das Präfix „@“, um die Verwendung von Schlüsselwörtern als Bezeichner ermöglicht, die nützlich ist, wenn sie mit anderen Programmiersprachen Schnittstelle. [...] Ein Bezeichner mit einem @ Präfix wird als Verbatim-Bezeichner bezeichnet. Verwendung von Das Präfix @ für Bezeichner, bei denen es sich nicht um Schlüsselwörter handelt, ist erlaubt, aber wird strengstens vom Stil abgeraten.

+0

Genau das, was ich suchte, danke! – KJ3

Verwandte Themen