2010-08-04 16 views
13

कभी-कभी मैं कुछ एपीआई परिवर्तनों के तर्क को जानना चाहता हूं। चूंकि Google ने इस प्रश्न के साथ मेरी सहायता नहीं की है, शायद स्टैक ओवरफ्लो कर सकते हैं। माइक्रोसॉफ्ट ने एक्सएमएल तत्वों पर GetAttribute सहायक विधि को हटाने का विकल्प क्यों चुना? System.Xml दुनिया में XmlElement.GetAttribute("x")getAttribute जैसे एमएसएक्सएमएल में इससे पहले, दोनों गायब होने पर विशेषता मान या खाली स्ट्रिंग लौटते हैं। XElement के साथ SetAttributeValue है लेकिन GetAttributeValue लागू नहीं किया गया था।XElement में GetAttributeValue विधि क्यों नहीं है?

निश्चित रूप से यह बहुत ज्यादा काम नहीं है का परीक्षण करने और XElement.Attribute("x").Value संपत्ति का उपयोग करने के तर्क को संशोधित करने, लेकिन यह के रूप में सुविधाजनक और उपयोगिता समारोह एक ही रास्ता (SetAttributeValue) नहीं बल्कि अन्य अजीब लगता है प्रदान नहीं है। क्या कोई बाहर निर्णय के पीछे कारणों को जानता है ताकि मैं आसानी से आराम कर सकूं और शायद इससे कुछ सीख सकूं?

उत्तर

15

आप इस तरह अधिक महत्व देते हैं पाने के लिए अपेक्षा की जाती है:

var value = (TYPE) element.Attribute("x"); 

अद्यतन:

उदाहरण:

: 210
var value = (string) element.Attribute("x"); 
var value = (int) element.Attribute("x"); 

आदि

यह लेख देखें। वही बात गुणों के लिए काम करती है।

+0

जो XAttribute का एक उदाहरण देता है। यह नहीं पता कि सिस्टम को कैसे कास्ट किया जाए। टाइप उपयोगी हो रहा है। –

+0

सिस्टम नहीं है। टाइप करें, जो भी प्रकार आपको इसकी आवश्यकता है। मैं अपना जवाब अपडेट करूंगा। – Necros

+1

अच्छा, उन वर्गों पर प्रकार के रूपांतरण के बारे में नहीं पता था। धन्यवाद! –

5

बिल्कुल कारण नहीं है, लेकिन सी # एक्सटेंशन विधियों के साथ, आप स्वयं समस्या को हल कर सकते हैं।

public static string GetAttributeValue(this XElement element, XName name) 
{ 
    var attribute = element.Attribute(name); 
    return attribute != null ? attribute.Value : null; 
} 

की अनुमति देता है:

element.GetAttributeValue("myAttributeName"); 
+4

मैं अक्सर यह काम करता हूं जो यह कार्य करता है और निश्चित रूप से यह आईएमओ का सबसे अच्छा तरीका है, लेकिन मुझे दिलचस्पी है * क्यों * एपीआई से GetAttribute गायब है जब यह पिछले मॉडलों में था और वे एक सहायक प्रदान करते हैं सेटर –

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