2012-11-28 17 views
17

में कस्टम अपवादों को कार्यान्वित करते समय .NET के लिए कस्टम अपवाद डिज़ाइन करते समय, एमएसडीएन these guidelines प्रदान करता है। विशेष रूप से, दिशा निर्देशों का कहना है कि एक कस्टम अपवाद:पोर्टेबल क्लास लाइब्रेरी

  • serializable होना चाहिए, जैसे कि ISerializable को लागू करने और [Serializable] विशेषता के साथ सजाया जा, और
  • अर्थात protected CustomException(SerializationInfo info, StreamingContext context) (डी) क्रमांकन निर्माता को लागू करना चाहिए,।

हालांकि, एक Portable Class LibrarySerializableAttribute, ISerializable और SerializationInfo की न में समर्थित हैं।

पोर्टेबल क्लास लाइब्रेरी में एक कस्टम अपवाद को पर्याप्त रूप से कैसे डिजाइन करना चाहिए जो एक साथ .NET Framework और एक या अधिक प्लेटफॉर्म को लक्षित करता है?

उत्तर

17

मूल रूप से, उस मार्गदर्शन को अनदेखा करें - जो पूर्ण .NET के लिए है, और पोर्टेबल क्लास लाइब्रेरी प्रोजेक्ट पर लागू नहीं होता है। दरअसल, अगर हम (जो WP7 भी शामिल है) पर (माना) Silverlight देखो हम देखते हैं:

[ClassInterfaceAttribute(ClassInterfaceType.None)] 
[ComVisibleAttribute(true)] 
public class Exception 

सच कहूं, कि आवश्यकता के मुख्य उपभोक्ता दूरस्थ था ... और कहा कि भारी मांग में अब नहीं है।

+0

स्पष्टीकरण के लिए बहुत धन्यवाद, मार्क। मुझे संदेह था कि यह मामला था (उदाहरण के लिए मार्गदर्शन .NET 4.5 के लिए अपडेट नहीं किया गया है), लेकिन विश्वसनीय स्रोत से पुष्टि प्राप्त करने के लिए यह और अधिक सुनिश्चित करता है। –

+1

@Anders मैंने "सामुदायिक सामग्री" अनुभाग में कुछ नोट्स जोड़े हैं - वे किसी बिंदु पर प्रकट हो सकते हैं। –

+1

इनमें से कुछ रन-टाइम पर लागू होते हैं, हालांकि। उदाहरण के लिए, यदि आप अपवाद में कुछ जोड़ने का प्रयास करते हैं। डेटा संग्रह यह पूर्ण फ्रेमवर्क पर अपवाद फेंक देगा, लेकिन सिल्वरलाइट पर नहीं। –

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