पर ऑब्जेक्ट कास्ट करें। मैं .NET में XmlReader
कक्षा के साथ एक XML फ़ाइल को पार्स कर रहा हूं और मैंने सोचा कि सामान्य रूप से विभिन्न विशेषताओं को पढ़ने के लिए जेनेरिक पार्स फ़ंक्शन लिखना स्मार्ट होगा। मैं निम्नलिखित फ़ंक्शन के साथ आया:टी
private static T ReadData<T>(XmlReader reader, string value)
{
reader.MoveToAttribute(value);
object readData = reader.ReadContentAsObject();
return (T)readData;
}
जैसा कि मुझे एहसास हुआ, यह पूरी तरह से काम नहीं करता है जैसा मैंने योजना बनाई है; यह int
या double
जैसे आदिम प्रकारों के साथ एक त्रुटि फेंकता है, क्योंकि एक कास्ट string
से एक संख्यात्मक प्रकार में परिवर्तित नहीं हो सकता है। संशोधित रूप में मेरे फ़ंक्शन के प्रबल होने का कोई तरीका है?
मैं करने के लिए Convert.ChangeType के साथ लाइन बदल दिया है: 'वापसी (टी) Convert.ChangeType (readData, typeof (टी), System.Globalization.CultureInfo.InstalledUICulture.NumberFormat) यह विभिन्न विभिन्न सांस्कृतिक पर काम करने के लिए विन्यास। –
उत्कृष्ट जवाब। मंचों पर दिनों की तलाश कर रहे थे लेकिन इस तरह कोई उचित जवाब नहीं मिला। धन्यवाद बॉब –
मुझे लगता है कि आप कर सकते हैं (टी) (ऑब्जेक्ट) readData – jjxtra