2009-07-23 10 views
14

जब निम्न वर्ग को BinaryFormatter के साथ क्रमबद्ध किया गया है, तो Roar ईवेंट की सदस्यता लेने वाली किसी भी ऑब्जेक्ट को भी क्रमबद्ध किया जाएगा, क्योंकि उन ऑब्जेक्ट्स के संदर्भ इवेंट हैंडलर प्रतिनिधि द्वारा आयोजित किए जाते हैं।ऑब्जेक्ट को क्रमबद्ध करते समय ईवेंट सब्सक्राइबर्स को अनदेखा कैसे किया जाए?

[Serializable] 
public class Lion 
{ 
    public event EventHandler Roar; 

    public string Name { get; set; } 
    public float Fluffiness { get; set; } 

    public Lion(string name, float fluffiness) 
    { 
     Name = name; 
     Fluffiness = fluffiness; 
    } 

    public void Poke() 
    { 
     Roar(); // Could be null, etc.. 
    } 
} 

आप कैसे बंद कर देंगे घटना ग्राहकों वस्तु ग्राफ एक शेर के साथ शुरू के भाग के रूप धारावाहिक जा रहा है?

event पर [NonSerializable] विशेषता संकलन नहीं होगा लाना।


नोट: मैं अपने स्वयं के प्रश्न का उत्तर दे रहा हूं क्योंकि मुझे लगता है कि साइट पर जानकारी रखने के लिए यह उपयोगी हो सकता है!

अक्सर पूछे जाने वाले प्रश्न: अपने प्रश्न पूछने और जवाब देने के लिए यह भी ठीक है, लेकिन नाटक करें कि आप खतरे में हैं: इसे एक प्रश्न के रूप में वाक्यांश दें।

उत्तर

25

आप event पर [NonSerialized] विशेषता के भाग के रूप "field:" शामिल करने की है।

यानी .:

[field: NonSerialized] 
public event EventHandler Roar; 
+0

धन्यवाद। लेकिन वह क्यों है? –

+0

ऐसा इसलिए है क्योंकि System.NonSerializedAttribute पर इसकी बाधा है: इसे केवल फ़ील्ड पर ही लागू किया जा सकता है! – Grubl3r

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

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