2010-02-08 11 views
7

मैं एएसपी.NET कस्टम नियंत्रण लिख रहा हूं, और मैं चाहता हूं कि इसमें कुछ गुण हों जो केवल रन-टाइम के दौरान कोड से दिखाई देनी चाहिए - मेरा मतलब है, इन गुणों को डिजाइनर में और दोनों में दिखाई नहीं देना चाहिए इस नियंत्रण वाले पेज के एएसपीएक्स कोड। मैं निम्न विशेषताओं का उपयोग करने की कोशिश की है:एएसपीएक्स पृष्ठ में एएसपी.NET कस्टम नियंत्रण की संपत्ति कैसे छिपाना है?

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public List<Item> SomeData { ... }

लेकिन दुर्भाग्य से इस संपत्ति जब aspx पृष्ठ का संपादन एक Intellisense बता गया में दिखाई दे रहा अब भी है। सर्वर-साइड कोड के अलावा हर जगह इस संपत्ति को छिपाना संभव है?

उत्तर

12

इस चाल करना चाहिए:

//Hide from Designer Property Grid 
[Browsable(false)] 
// Hide from VS.NET Code Editor IntelliSense 
[EditorBrowsable(EditorBrowsableState.Never)] 
// Not Serialized in Designer Source code "HTML view" 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public List<Item> SomeData { ... } 
2

Amiir के जवाब निश्चित रूप से काम करता है, लेकिन मैं जोड़ने के लिए है कि कभी कभी विशेषताओं को लागू करने के बाद भी, Intellisense अभी भी गुणों को प्रदर्शित करता चाहते हैं। यह इंटेलिजेंस फ़ाइलों को कैशिंग करने वाले विजुअल स्टूडियो का नतीजा है। यदि आप एक ही परियोजना को एक अलग मशीन पर बनाते हैं, तो यह गुण नहीं दिखाएगा। यदि यह वास्तव में आपको बग करता है, तो आप "सी: \ दस्तावेज़ और सेटिंग्स \ [YOUR_USER_NAME] \ अनुप्रयोग डेटा \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas फ़ोल्डर में सभी फ़ाइलों को हटाकर कैश को साफ़ कर सकते हैं।"