ورود به سیستم 
 
    محتویات سایت
        برچسب های محبوب 








 
   استفاده از تنظيمات (Settings) در #C
  اين مقاله نحوه خواندن و نوشتن تنظيمات در هنگام طراحی و اجرای برنامه را آموزش می دهد
   C#
   ۲۵۱۹۳
   این مقاله حاوی فایل ضمیمه نمی باشد
   رکسانا زاهدی
   ۱۳۸۵/۹/۸
نسخه قابل چاپ نسخه قابل چاپ

مقدمه

ويژوال استوديو 2005 به کاربر اين امکان را مي دهد که مقاديري پايدار در مقاطع اجرايي برنامه ايجاد کند و به آنها دسترسي داشته باشد. اين مقادير اصطلاحا تنظيمات  ( Settings) ناميده مي شوند. تنظيمات برنامه مي توانند اولويت هاي کاربر و يا مقادير مهم براي اجراي برنامه را ارائه  نمايند .
به عنوان مثال ممکن است شما بخواهيد يک سري تنظيمات کاربر براي زمينه رنگهاي برنامه و يا رشته ارتباطي براي برقرار کردن ارتباط برنامه با بانک اطلاعاتي مورد استفاده آن را در جايي ذخيره نماييد.
قسمت تنظيمات به شما اين امکان را مي دهد که هم بتوانيد مقادير ثابت مورد نياز برنامه خود در خارج از محيط کدنويسي و هم مقادير مورد نظر کاربران را ذخيره نماييد.
در حالي که در vb.net 2005 يک روش ساده با استفاده از فضاي ناميMy براي دستيابي به تنظيمات وجود دارد در C# 2005 چنين روش مشابهي موجود نيست. با اين حال کاربران #C هم مي توانند با دستيابي به فضاي نامي Properties  از تنظيمات استفاده نمايند.
در اين مقاله شما تفاوت بين تنظيمات کاربر و برنامه را خواهيد شناخت و اينکه چگونه قادر خواهيد بود تنظيمات جديدي را در زمان طراحي ايجاد کنيد و در زمان اجراي برنامه به آنها دست يابيد و حتي چگونگي بهم پيوند دادن مجموعه هاي متعددي از تنظيمات به يکديگر را در برنامه خود ياد بگيريد.

تنظيمات کاربر و برنامه (Application):


تنظيمات   داراي چهار خاصيت هستند:
• Name: خاصيت نام ، شناسه اي براي دستيابي به مقدار تنظيمات در زمان اجراي برنامه است.
• Type: خاصيت Type  در تنظيمات نشان دهنده يک "نوع" يا گونه در چارچوب .Net مي باشد. به عنوان مثال تنظيماتي که زمينه رنگي مورد نظر کاربر را نگهداري مي کند از نوع System.Color مي باشد.
• Scope: اين خاصيت نشان دهنده اين است که تنظيمات در زمان اجراي برنامه تا چه اندازه قابل دستيابي هستند. يا اصطلاحا ميدان عمل آنها چيست؟ دو مقدار ممکن براي اين خاصيت عبارت است از: User و Application. در مورد اين خاصيت در قسمتهاي بعد بيشتر توضيح داده مي شود.
• Value: اين خاصيت مقداري است که در زمان اجراي برنامه در صورت دسترسي به تنظيمات برگردانده مي شود. اين مقدار از نوع خاصيت Type که در بالا توضيح آن داده شد مي باشد.

در ميان اين خاصيتها Name, Type  و Value براي بيشتر برنامه نويسان آشناست. اما خاصيت Scope نياز به توضيحات بيشتري دارد. همانگونه که گفته شد اين خاصيت مي تواند دو مقدار User و Application را داشته باشد. تنظيمات با ميدان عمل برنامه يا Application Scope تنظيماتي هستند که در زمان اجراي برنامه بدون در نظر گرفتن تنظيمات کاربر براي اجراي برنامه مورد استفاده قرار مي گيرند، در حالي که تنظيمات با ميدان عمل User (User Scope) معمولا اهميت کمتري براي برنامه دارند و بيشتر به منظور نگهداري تنظيمات کم اهميت  و يا تنظيمات مورد نظر کاربر مورد استفاده قرار مي گيرند.
وجه تمايز اصلي مابين ميدان عمل Application و User در اين است که تنظيمات با ميدان عمل User در زمان اجراي برنامه قابل خواندن و نوشتن هستند و مقادير آنها در کد برنامه مي تواند تغيير کرده و ذخيره شود اما در ميدان عمل Application تنظيمات فقط خواندني (Read only)  هستند.
اين نوع تنظيمات فقط در زمان طراحي (Design)  و يا به صورت دستي تغيير داده مي شوند.

ايجاد تنظيمات جديد در زمان طراحي:
شما مي توانيد در زمان طراحي يک تنظيم جديد با استفاده از فرم طراح تنظيمات (Settings Designer) ايجاد نماييد. براي هر تنظيم شما بايد چهار خاصيت گفته شده در بالا را معين نماييد .
براي ايجاد تنظيم جديد در زمان طراحي:
1- در پنجره Solution Explorer گره Properties را باز کنيد.
2- در پنجره Solution Explorer روي فايل .settings که مي خواهيد تنظيم جديد در آن انجام دهيد دوبار کليک کنيد.
3- در فرم طراح تنظيمات  (Setting designer)   مطابق شکل  خواص Name, Type, Scope و Value  را معين کنيد.

تغيير دادن مقدار (Value)  تنظيمات در قسمتهاي مختلف برنامه:


در برخي موارد ممکن است شما بخواهيد مقدار تنظيمات خاصي را پس از کامپايل و استقرار کامل برنامه عوض کنيد.مثلا ممکن است بخواهيد رشته اتصال به بانک اطلاعاتي را براي وصل شدن به محل درست بانک اطلاعاتي تغيير دهيد. از آنجايي که پس از کامپايل و استقرار برنامه، ابزارهاي طراحي برنامه در دسترس نيستند، شما بايد مقدار تنظيمات  مورد نظر را به صورت دستي در فايل تغيير دهيد.

براي تغيير دادن مقادير تنظيمات در محلهاي مختلف برنامه:
1- از برنامه Notepad ويا ساير برنامه هاي ويرايشگر متن يا ويرايشگر XML استفاده کرده و فايل AssemblyName>.exe.config>   وابسته به برنامه خود را باز کنيد.
2- تنظيمات مورد نظر خود را به صورت مثال زير وارد نماييد:


<setting name="Setting" serializeAs="String">
   <value>This is the setting value</value>
</setting>

3- مقادير جديد را در قسمت Value  وارد کرده و فايل را مجددا ذخيره کنيد.

استفاده از تنظيمات در زمان اجرا:

تنظيمات در هنگام اجراي برنامه در دسترس شما هستند. شما مي توانيد به مقادير آنها در ميدان عمل برنامه (Application Scope)   به صورت فقط خواندني و در ميدان عمل کاربر (User Scope)  به صورت خواندني/نوشتني دسترسي داشته باشيد.
تنظيمات در C#  از طريق فضاي نامي Properties در دسترس قرار مي گيرند.

خواندن تنظيمات در زمان اجرا:
فضاي نامي Properties  تمامي تنظيمات پيش فرض پروژه را با استفاده از شيء Properties.Settingds.Default ارائه ميکند. در هنگام کدنويسي تمامي تنظيمات به صورت خودکار (intelisense)  و به صورت  نوع واقعي  ظاهر مي شوند.
بنابراين اگر شما به عنوان مثال تنظيماتي از نوع System.Drawing.Color داريد، مي توانيد بدون هيچ مشکلي (از جهت casting) از آن استفاده کنيد. مانند مثال زير:


this.BackColor = Properties.Settings.Default.myColor;

ذخيره سازي تنظيمات کاربر در هنگام اجراي برنامه:

تنظيماتي با ميدان عمل برنامه يا اصطلاحا Application-Scope  به هيچ عنوان نمي توانند در هنگام اجراي برنامه تغيير داده شوند و ايجاد هر گونه تغيير در آنها تنها در زمان طراحي (Design-time)  و با تغيير دادن فايل AssemblyName>.exe.config> امکان پذير مي باشد.
اما تغيير دادن تنظيمات با ميدان عمل کاربر (user-Scope) در زمان اجرا ممکن است . شما مي توانيد مقدار مورد نظر خود را به اين گونه تنظيمات تخصيص داده و با استفاده از متد Settings.Save آن را ذخيره نماييد. مثال زير نمونه اي از اين کار را نشان مي دهد:


Properties.Settings.Default.myColor = Color.AliceBlue;
Properties.Settings.Default.Save();

در برخي موارد ممکن است بخواهيد مجموعه هاي مجزايي از تنظيمات در برنامه خود داشته باشيد که در اين صورت به روش زير مي ¬توانيد آنها را به برنامه خود اضافه نماييد:
1- به منوي Project رفته و گزينه Add New Item را انتخاب کنيد.
2- در پنجره باز شده، گزينه Setting File را انتخاب کنيد.
3- در قسمت Name يک نام براي فايل خود تعيين کنيد (مانند SpecialSettings.settings) و دکمه Add را بزنيد.
4- در قسمت Solution Explorer فايل جديد را به داخل فولدر Properties بکشيد (يا اصطلاحا Drag کنيد) اين عمل موجب در دسترس قرار گرفتن فايل شما در هنگام کدنويسي مي گردد.

منبع: MSDN Online
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/settingscs_rl.asp