2010-11-25 6 views
120

हर बार जब मैं वीएस में संसाधन फ़ाइल संपादित करता हूं, तो यह संबंधित कोड को पुन: उत्पन्न करता है और कक्षा में एक्सेस एक्सेस संशोधक को आंतरिक में सेट करता है।
यह Ctrl-F -> प्रतिस्थापन के लिए एक दर्द है हर बार जब मैं resx संपादित करता हूं। क्या कोई संपत्ति/सेटिंग है ताकि मैं इसे सार्वजनिक रूप से डिफॉल्ट कर सकूं?विजुअल स्टूडियो - रेसएक्स फ़ाइल डिफ़ॉल्ट 'आंतरिक' 'सार्वजनिक'

internal class MyResource { 

    internal static global::System.Resources.ResourceManager ResourceManager {...} 

} 

मैं public हर समय होने के लिए उन सभी internal की जरूरत है।

+0

@jvanrhyn: क्योंकि मुझे समाधान में किसी अन्य प्रोजेक्ट से अपने संसाधन प्रबंधक तक पहुंचने की आवश्यकता है। –

उत्तर

240

ResXFileCodeGenerator के बजाय, PublicResXFileCodeGenerator का उपयोग करें।

आप इसे रेसएक्स फ़ाइल के लिए प्रॉपर्टी विंडो में कस्टम टूल प्रॉपर्टी के रूप में सेट करके कर सकते हैं, जिसे आप सार्वजनिक एक्सेस चाहते हैं।

संपादित करें: जब आप विजुअल स्टूडियो में resx फ़ाइल खोलते हैं तो वैकल्पिक रूप से आप एक्सेस मॉडिफायर को सार्वजनिक में सेट कर सकते हैं। एक्सेस संशोधक ड्रॉपडाउन बॉक्स फॉर्म के शीर्ष पर पाया जा सकता है।

+11

(अच्छा जवाब; लेकिन केवल कुछ नोट्स; यह 'ग्लोबल रिसोर्सप्रोक्सी जेनरेटर' भी हो सकता है, न केवल 'ResXFileCodeGenerator'; और यह भी ध्यान दें कि "एक्सेस मॉडिफ़ियर" ड्रॉपडाउन अक्सर अक्षम होता है) –

+3

@Marc: Thx, मैं हर दिन कुछ नया सीखता हूं :) +1। – Anton

+0

@ एंटन: धन्यवाद, मेरे मामले में काम करता है। साथ ही, मैंने देखा है कि ड्रॉप डाउन से एक्सेस मॉडिफायर को बदलने से संबंधित टूल बदल जाता है। –

-5

शायद सार्वजनिक सीटीआर के साथ व्युत्पन्न कक्षा बनाने का सबसे आसान तरीका है?

उत्पन्न वर्ग:

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 
    internal Strings() { 
    } 

व्युत्पन्न वर्ग:

public class PublicStrings : Strings 
{ 
    /// <summary> 
    /// Public localization Strings. 
    /// </summary> 
    public PublicStrings() 
    { 

    } 
} 
+9

यह संभव नहीं है। आपको एक त्रुटि मिलेगी CS0060 असंगत पहुंच: बेस क्लास 'स्ट्रिंग्स' वर्ग 'पब्लिकस्ट्रिंग्स' से कम पहुंच योग्य है –

1

1) संसाधन फ़ाइल (resource.resx) => गुण पर राइट क्लिक करें।

2) कस्टम टूल => PublicResXFileCodeGenerator पर बदलें।

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