2010-06-02 13 views
7

मेरे पास एक संदर्भ प्रकार का एक उपयोगकर्ता नियंत्रण है जो संदर्भ प्रकार का है। विंडोज फॉर्म डिज़ाइनर कोड उत्पन्न करता रहता है जो संपत्ति के प्रारंभिक मान को शून्य में निर्दिष्ट करता है। मेरे द्वारा इसे कैसे रोका जा सकता है?विंडोज फॉर्म डिज़ाइनर को गुणों के लिए डिफ़ॉल्ट मान असाइनमेंट जेनरेट करने से कैसे रोकें?

मैंने रीसेट और कन्फेरियलाइज विधियों को जोड़ने का प्रयास किया - रीसेट में एक खाली निकाय था और चाहिएसराइरियलाइज हमेशा झूठा लौटा - लेकिन यह काम नहीं करता था। मैंने ब्राउज़ करने योग्य एट्रिब्यूट भी लगाया और इसे गलत पर सेट किया।

संपादित करें:

संपत्ति का प्रकार एक ही परियोजना में एक वर्ग है। यह एक घटक या नियंत्रण नहीं है, ऑब्जेक्ट से विरासत में केवल एक सादा वर्ग है। साथ ही, संपत्ति का सेटटर संपत्ति के मूल्य का उपयोग करके तर्क के रूप में एक विधि कहता है और विधि वैध तर्क के रूप में शून्य स्वीकार नहीं करती है।

उदाहरण:

public MyClass Property1 
{ 
    get { return _property1; } 
    set 
    { 
     _property1 = value; 
     SomeMethod(value); // This method throws ArgumentNullException; 
    } 
} 

नोट: मुझे लगता है कि हो और सेट तरीकों शायद यहाँ अधिक उचित होगा है।

+0

कृपया एक उदाहरण जोड़ें। बस किसी भी रेफरी प्रकार या एक घटक/नियंत्रण के लिए एक रेफरी? –

+0

भले ही आप डिफ़ॉल्ट रूप से डिफ़ॉल्ट रूप से डिफ़ॉल्ट सेट नहीं करते हैं, फिर भी डिफ़ॉल्ट रूप से एक रेफ प्रकार के लिए डिफ़ॉल्ट रूप से पूर्ण होगा। आप यह क्या उम्मीद करेंगे? –

+0

मुझे लगता है कि विंडोज फॉर्म डिज़ाइनर उस मूल्य को ओवरराइट कर रहा है जिसे आपने प्रारंभ में नियंत्रण में लिखा था? – Mike

उत्तर

18

मर्क, मैं एक स्निपेट का उपयोग कर सकता था। डिजाइनर को बताएं कि इसे कभी भी संपत्ति के मूल्य को क्रमबद्ध नहीं करना चाहिए:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    public Image Aardvark { get; set; } 
+0

+1 मुझे 'नेट' पसंद है। –

+0

@ हंस क्या हम किसी संपत्ति के लिए डिफ़ॉल्ट मान भी प्रदान कर सकते हैं और इसे डिज़ाइनर पर प्रस्तुत कर सकते हैं? – Brij

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