2014-04-21 10 views
7

मैं जेसन सीरियलाइज़र का उपयोग कर रहा हूं और 'ईवेंट' नामक एक संपत्ति नाम से जुड़ने की आवश्यकता है बेशक घटना सी # में एक कीवर्ड है, इसलिए string event { get; set; } जैसे कुछ करने की अनुमति नहीं है। क्या ऐसा करने के लिए वैसे भी जाना है? मैं वापस आने वाली वस्तु का नाम नहीं बदल सकता।सी # संपत्ति नामांकित घटना

उत्तर

11

मान लिया जाये कि आप Json.NET उपयोग कर रहे हैं, तो आप JsonProperty attribute, या @ symbol, या उपयोग कर सकते हैं के साथ एक ContractResolver (वहाँ एक अंतर्निहित एक है कि चीजों को CamelCase बनाता है, इसलिए Event की संपत्ति नाम को क्रमानुसार होता है 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 जो सबकुछ '@' आईएनजी के साथ मिलाने की आवश्यकता से बचाता है। बेशक, हमेशा एक गरीब आत्मा होगी जिसे वीबी में लिखना है, इसलिए 'इवेंट' उनके लिए भी सीमा है और उन्हें इसके आसपास जाने के लिए '[घटना]' लिखना है, और इसलिए शिकायत होगी कि आप पूरी तरह से एक अलग शब्द इस्तेमाल किया जाना चाहिए था। – ClickRick

11

@ उपयोग का उपयोग करने के keywords as identifiers

string @event { get; set; } 

उपसर्ग "@" पहचानकर्ता के रूप में खोजशब्दों का उपयोग, जो उपयोगी होता है जब अन्य प्रोग्रामिंग भाषाओं के साथ इंटरफ़ेस सक्षम बनाता है। [...] @ उपसर्ग के साथ एक पहचानकर्ता को वर्बैटिम पहचानकर्ता कहा जाता है। का उपयोग उन पहचानकर्ताओं के लिए @ उपसर्ग जो कीवर्ड नहीं हैं, लेकिन शैली के मामले के रूप में दृढ़ता से निराश हैं।

+0

वही है जो मैं धन्यवाद चाहता था! 'जेसनप्रोपर्टी' के लिए – KJ3

संबंधित मुद्दे