2010-12-14 27 views
19

मैंने EditorBrowsable (जैसा कि Hiding user control properties from IntelliSense कहा) के साथ इंटेलिजेंस में विरासत में संपत्ति को छिपाने की कोशिश की, क्लाइंट फॉर्म में परीक्षण करते समय भी मैं इसे अभी भी देख सकता हूं क्यों?संपादक ब्रोसेबल क्यों काम नहीं करता है?

[ 
Category("Main"), 
Description("Text"), 
Obsolete("Don't use this"), 
Browsable(false), 
EditorBrowsable(EditorBrowsableState.Never) 
] 
public override String Text 
{ 
    get { return null; } 
} 
+0

कुछ साल बीत चुके हैं, लेकिन रुचि रखने वालों के लिए: https://github.com/dotnet/roslyn/issues/4434 – quetzalcoatl

उत्तर

19

मैं repro।

विजुअल C# में, EditorBrowsableAttribute एक ही विधानसभा में एक वर्ग से सदस्यों को दबाने नहीं है: इस बारे में MSDN लेख में एक नोट है।

विचित्र रूप से, मुझे यह नहीं लगता है कि जब मैं UserControl को उसी समाधान में एक अलग असेंबली में डालता हूं तो मुझे यह दबाना पड़ता है।
आप इस बारे में connect.microsoft.com पिंग करना चाहते हैं, कुछ सही नहीं है।

+0

क्या आपने वीएस को बंद कर दिया और फिर से खोल दिया? वीएस कैश नियंत्रण। – eschneider

+0

@escheneider हाँ अभी भी हल नहीं हुआ। – user310291

+0

कम से कम आप मेरे जैसा ही परिणाम प्रतीत होते हैं इसलिए मैं पागल नहीं हूं :) मेरे लिए बहुत अप्रिय हो जाएगा! – user310291

36

क्या आप Resharper का उपयोग कर रहे हैं? ऐसा लगता है कि Resharper EditorBrowsable विशेषता का पालन नहीं करता है।
अगर मैं रिशेर्पर बंद कर देता हूं, तो मुझे अपनी संपत्ति नहीं दिखाई देती है। अगर मैं Resharper चालू करता हूं, तो यह दिखाता है।

रिशेर्पर विकल्पों में, पर्यावरण पर जाएं | IntelliSense | पूर्ण उपस्थिति और जांच करें "[संपादकीय ब्रोसेबल] विशेषता द्वारा फ़िल्टर सदस्यों"।

आपको अभी भी असेंबली का संदर्भ देना होगा, हालांकि यदि आप अपने उपयोगकर्ता नियंत्रण परियोजना का संदर्भ देते हैं तो यह समाधान के भीतर काम नहीं करता है।

+0

नहीं, मैं Reshaper का उपयोग नहीं कर रहा हूं। मैंने क्लाइंट प्रोजेक्ट को किसी अन्य समाधान में खोला है और टूलबॉक्स से डीएल को इंगित किया है और मैं अभी भी इंटेलिजेंस में टेक्स्ट प्रॉपर्टी देख सकता हूं। मुझे लगता है कि मैं हार दूंगा मेरे लिए बहुत अपरिहार्य लगता है :) – user310291

+0

जो मेरे लिए काम करता है, क्योंकि मैं resharper का उपयोग कर रहा हूँ। एक ही समाधान के साथ भी जब एक परियोजना के रूप में संदर्भित यह काम करता है। धन्यवाद! – afif

+0

धन्यवाद! इसे काम करने की कोशिश करने के घंटों के बाद, मैंने आपका जवाब पढ़ा और voilá! अब बेकार काम करता है। धन्यवाद, मैंने कभी सोचा नहीं था कि resharp इसे पैदा कर रहा था। –

4

रूप this answer की टिप्पणी में कहा:

editorbrowsable एकमात्र तरीका छुपाता है अगर आप सिर्फ dll आयात कर रहे हैं, तो आप समाधान में एक अन्य परियोजना को संदर्भित कर रहे हैं नहीं करता है, तो मुझे लगता है कि

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