मुझे यह समस्या है, मैं कक्षा से गुण खींचने के लिए प्रतिबिंब का उपयोग कर रहा हूं लेकिन समस्या प्रतिबिंब उन्हें एक वस्तु के रूप में लौटाती है और मैं इसे अपने वास्तविक प्रकार में नहीं प्राप्त कर सकता।अमान्य कास्ट अपवाद जेनेरिक
उदाहरण के लिए लें, अगर इस वर्ग है:
public class Row<T>
{
public static explicit operator Row<object>(Row<T> o)
{
return new Row<object>
{
Name = o.Name,
Value = o.Value
};
}
public string Name { get; set; }
public T Value { get; set; }
}
एक से कास्टिंग कहना Row<bool>
Row<object>
कार्यों के लिए:
var a = new Row<bool>
{
Name = "Foo",
Value = true
};
var b = (Row<object>)a; // Works
लेकिन यह लगता है जब मैं object
से Row<object>
पर जाने की कोशिश मेरे स्पष्ट ऑपरेटर को अनदेखा करें और एक सिस्टम फेंक दें। इन्वालिड कैस्ट अपवाद:
var c = (object) a; // Simulate getting from reflection
var d = (Row<object>) c; // System.InvalidCastException
मुझे क्या याद आ रही है?
ऐसा करें यह var c = (पंक्ति
सुनिश्चित नहीं है कि आप क्या उम्मीद करते हैं - आपके नमूने में कोई 'स्पष्ट ऑपरेटर पंक्ति
ऐसा इसलिए हो सकता है क्योंकि स्पष्ट ऑपरेटर को 'पंक्ति' की उम्मीद है जबकि आप इसे 'ऑब्जेक्ट' दे रहे हैं। –