मुझे एक अप्रचलित विधि को चरणबद्ध करने की आवश्यकता है। मैं [Obsolete]विशेषता से अवगत हूं । क्या Microsoft के पास ऐसा करने के लिए अनुशंसित सर्वोत्तम अभ्यास मार्गदर्शिका है?
यहाँ मेरी वर्तमान योजना है:
A. मैं एक नई विधानसभा नहीं बनाना चाहता क्योंकि डेवलपर्स को अपनी परियोजनाओं के लिए एक नया संदर्भ जोड़ना होगा और मुझे अपने बॉस और सहकर्मियों से बहुत दुःख मिलने की उम्मीद है अगर उन्हें ऐसा करना चाहिए। हम कई असेंबली संस्करणों को भी बनाए नहीं रखते हैं। हम केवल नवीनतम संस्करण का उपयोग करते हैं। इस अभ्यास को बदलने के लिए हमारी तैनाती की प्रक्रिया को बदलना होगा जो कि एक बड़ा मुद्दा है (लोगों को फ़ाइनलबुस्टर के बजाय टीएफएस के साथ चीजों को कैसे करना है और फ़ाइनलबुर्टल को छोड़ना है) को सिखाना होगा
B. पुरानी पद्धति को अप्रचलित चिह्नित करें।
C. क्योंकि कार्यान्वयन बदल रहा है (विधि हस्ताक्षर नहीं), मुझे अधिभार बनाने के बजाय विधि का नाम बदलने की आवश्यकता है। इसलिए, उपयोगकर्ताओं को उचित तरीके से अवगत कराने के लिए मैं एक संदेश को [Obsolete]विशेषता में जोड़ने की योजना बनाता हूं । यह हिस्सा मुझे परेशान करता है, क्योंकि मैं जो एकमात्र बदलाव कर रहा हूं, वह कनेक्शन स्ट्रिंग से विधि को डिकूपिंग कर रहा है। लेकिन, क्योंकि मैं एक नई असेंबली नहीं जोड़ रहा हूं, इसलिए मुझे इसके आसपास कोई रास्ता नजर नहीं आ रहा है।
परिणाम:
[Obsolete("Please don't use this anymore because it does not implement IMyDbProvider. Use XXX instead.")];
/// <summary>
///
/// </summary>
/// <param name="settingName"></param>
/// <returns></returns>
public static Dictionary<string, Setting> ReadSettings(string settingName)
{
return ReadSettings(settingName, SomeGeneralClass.ConnectionString);
}
public Dictionary<string, Setting> ReadSettings2(string settingName)
{
return ReadSettings(settingName);// IMyDbProvider.ConnectionString private member added to class. Probably have to make this an instance method.
}