मैं कस्टम ResourceManager.GetString (...) विधि कार्यक्षमता को प्राप्त करने के Resources.Designer.cs
फ़ाइल से System.Resources.ResourceManager
ओवरराइड करना चाहते। क्या यह संभव है?कैसे Resources.Designer.cs में डिफ़ॉल्ट System.Resources.ResourceManager ओवरराइड करने के लिए?
उत्तर
मेरा मानना है कि आप दो अलग-अलग सवाल यहाँ पूछ रहे हैं। आप निश्चित रूप से ResourceManager.GetString
ओवरराइड कर सकते हैं। हालांकि, आप ऑटो-जेनरेट Resource.Designer.cs
कोड में उस ओवरराइड का उपयोग नहीं कर सकते हैं। इसका उपयोग करने के लिए, आपको अपना खुद का Resource
डिज़ाइनर क्लास लिखना होगा।
public class CustomResourceManager : ResourceManager
{
public CustomResourceManager(Type resourceSource)
:base(resourceSource)
{
}
public CustomResourceManager(string baseName, Assembly assembly)
: base(baseName, assembly)
{
}
public CustomResourceManager(string baseName, Assembly assembly, Type usingResourceSet)
: base(baseName, assembly, usingResourceSet)
{
}
public override string GetString(string name)
{
// your business logic
}
public override string GetString(string name, CultureInfo culture)
{
// your business logic
}
}
तब मैं अपने प्रोजेक्ट के लिए एक पूर्व निर्माण कदम एक System.Resources.ResourceManager
के निर्माण को बदलने के लिए मेरी CustomResourceManager
साथ उत्पन्न में कहा:
public class MyResourceManager : System.Resources.ResourceManager
{
// override
public override GetString(string name)
{
// custom code
}
}
public class MyResourceDesigner
{
// use your custom class with override
private static MyResourceManager resourceManager;
private static CultureInfo resourceCulture;
public static MyResourceManager ResourceManager
{
if (object.ReferenceEquals(resourceManager, null))
{
// Resource is just the name of the .resx file
// be sure to include relevant namespaces
var temp = new MyResourceManager(
"MyProject.Resource",
typeof(MyResourceDesigner).Assembly);
resourceManager = temp;
}
return resourceManager;
}
public static CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
// start adding strongly-typed objects
public static string Foo
{
get
{
// use your override
return ResourceManager.GetString("Foo", resourceCulture);
}
}
}
यह पूर्ण होने का मतलब नहीं है, हालांकि इसमें 'वर्ग' कीवर्ड गुम है। कृपया अपनी आलोचनात्मक रचनात्मक बनाने की कोशिश करें। – Kjata30
मैं एक CustomResourceManager
कि GetString()
कॉल तो जैसे ओवरराइड करता है बनाया Resource.Designer.cs
फ़ाइल:
powershell -command "(gc ..\Resources\Resource.Designer.cs).Replace(\"new global::System.Resources.ResourceManager\", \"new CustomResourceManager\") | set-content ..\Resources\Resource.Designer.cs -Encoding UTF8"
और दूर हम जाते हैं!
यह बहुत अच्छा काम करता है, जब तक कोड से संसाधनों का उपयोग किया जा रहा है। रेजर दृश्यों से संसाधनों का उपयोग करते समय ऐसा लगता है कि संकलित किए गए "अनुकूलित" संस्करण के बजाय मूल जेनरेट किया गया संस्करण उपयोग किया जा रहा है। कोई उपाय? – laureysruben
कस्टम संसाधन प्रबंधक को मेरे लिए दृश्य से बुलाया जा रहा है। आपका विचार कैसा दिखता है? मेरा नमूना इस तरह दिखता है: '@using my.Namespace.Resources' [नई पंक्ति] '
@ संसाधन.फू
' – djsऐसा लगता है कि हम वास्तव में क्या कर रहे हैं, लेकिन यह अभी भी काम नहीं करता है। जब हम जांच जहाँ हम इस App_GlobalResources.gecvukmg.dll में और डिजाइनर कोड फ़ाइल में नहीं खत्म करने के लिए दृष्टिकोण में संसाधनों। तो ऐसा लगता है कि उत्पन्न (और छेड़छाड़) डिजाइनर कोड फ़ाइल का उपयोग दृश्य द्वारा उपयोग किए गए संकलित App_GlobalResources.gecvukmg.dll में नहीं किया जाता है। – laureysruben
- 1. मैवेन प्लगइन के चरण में डिफ़ॉल्ट बाध्यकारी को ओवरराइड करने के लिए कैसे करें
- 2. क्यूटी में टैब चौड़ाई को ओवरराइड करने के लिए कैसे?
- 3. डिफ़ॉल्ट एंड्रॉइड थीम ओवरराइड करें
- 4. डिफ़ॉल्ट jQuery चयनकर्ता संदर्भ ओवरराइड
- 5. स्प्रिंग बीन परिभाषाओं के लिए डिफ़ॉल्ट-आलसी-इनिट = सही ओवरराइड
- 6. सिनात्रा डिफ़ॉल्ट ओवरराइड त्रुटि पृष्ठ
- 7. डेटाबेस.आईएमएल ओवरराइड करने के लिए रणनीतियां?
- 8. रेल से ओवरराइड करने के लिए?
- 9. सीकेडिटर में बटन के लिए हैंडलर को ओवरराइड कैसे करें?
- 10. GetHashCode() को ओवरराइड करने के लिए कब?
- 11. Django में डिफ़ॉल्ट उपयोगकर्ता मॉडल फ़ील्ड को ओवरराइड कैसे करें?
- 12. EntityFramework गुणों को ओवरराइड करने के लिए कैसे करें
- 13. मौजूदा एक्सटेंशन विधि को ओवरराइड करने के लिए कैसे करें
- 14. एंड्रॉइड स्पिनर पर क्लिक करने के लिए ओवरराइड कैसे करें?
- 15. Symfony2: कोर टेम्पलेट को ओवरराइड करने के लिए कैसे?
- 16. एक्शनलिंक व्यवहार को ओवरराइड करने के लिए कैसे करें
- 17. सी में रूबी विस्तार - कार्य करने के लिए डिफ़ॉल्ट तर्क मान निर्दिष्ट करने के लिए कैसे?
- 18. Django ओवरराइड डिफ़ॉल्ट रूप त्रुटि संदेश
- 19. पिरामिड (पायथन): डिफ़ॉल्ट त्रुटि दृश्य ओवरराइड करें
- 20. resources.designer.cs ऑटो-जनरेटिंग नहीं है। (MonoDevelop शुरुआती)
- 21. कैसे सीएसएस में टैग img के लिए वैश्विक शैली ओवरराइड करने के लिए
- 22. simple_form सबमिट करने के लिए डिफ़ॉल्ट अक्षम_with
- 23. मैं कैसे VS2010 के बजाय एक सार्वजनिक निर्माता आंतरिक साथ Resources.Designer.cs उत्पन्न करने के लिए मिलता है?
- 24. क्यों अंतिम रूप विधि ओवरराइड करने के लिए
- 25. सूची-शैली सीएसएस डिफ़ॉल्ट पर वापस ओवरराइड
- 26. उपयोगकर्ता ऑब्जेक्ट्स पर get_absolute_url डिफ़ॉल्ट ओवरराइड करें?
- 27. डिफ़ॉल्ट शीर्षलेख खोज पथ ओवरराइड करें
- 28. Django व्यवस्थापक खोज: डिफ़ॉल्ट हैंडलर को ओवरराइड कैसे करें?
- 29. प्लोन में निपुणता व्यवहार में किसी फ़ील्ड के डिफ़ॉल्ट मान को ओवरराइड कैसे करते हैं?
- 30. डिफ़ॉल्ट तर्क को ओवरराइड करना- व्यवहार
आप संसाधनप्रबंधक बजाय लपेट कर सकते हैं यह अधिभावी की? – Filip
हाँ मैं कर सकता हूँ। मैं बस कस्टम संसाधन प्रबंधक प्राप्त करना चाहता हूं। गेटस्ट्रिंग (...) कार्यक्षमता। –
फिर इसे कस्टम क्लास में लपेटें और उस कक्षा के GetString विधि में सभी अतिरिक्त कार्य करें। – Filip