मैं यह जांचने का एक आसान तरीका ढूंढ रहा हूं कि क्या C # में कोई ऑब्जेक्ट सीरियल करने योग्य है।
जैसा कि हम जानते हैं कि आप ISIRializable इंटरफ़ेस लागू करके या वर्ग के शीर्ष पर [Serializable] रखकर किसी वस्तु को क्रमबद्ध बनाते हैं ।
मैं जिस चीज की तलाश कर रहा हूं, वह यह जांचने का एक त्वरित तरीका है कि यह विशेषता पाने के लिए कक्षा को प्रतिबिंबित किए बिना। इंटरफेस त्वरित का उपयोग कर एक होगा है बयान।
@ फ़्लर्ड के सुझाव का उपयोग करना यह कोड है जो मैं लेकर आया हूं, चीख वहाँ एक बेहतर तरीका है।
private static bool IsSerializable(T obj)
{
return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute))));
}
या इससे भी बेहतर बस वस्तु का प्रकार प्राप्त करें और फिर प्रकार पर IsSerializable संपत्ति का उपयोग करें:
typeof(T).IsSerializable
याद रखें कि यह केवल उस वर्ग को लगता है जिसे हम निपटा रहे हैं यदि वर्ग में अन्य वर्ग हैं जिन्हें आप संभवतः उन सभी को जांचना चाहते हैं या क्रमबद्ध करें और त्रुटियों के लिए प्रतीक्षा करें और जैसा कि @pb ने बताया है।