جستجو برای:
سبد خرید 0
  • درباره
  • خدمات
  • مقالات
  • فیلم آموزشی
  • تماس
  • فروشگاه
  • سبد خرید
  • پرداخت
  • حساب کاربری من
  • صفحه اصلی
 

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • 02188210000
  • [email protected]
perm_identity
سبد خرید 0
0
توسعه محصول و کسب و کار نرم افزار
ورود و ثبت نام
دسته بندی‌ دوره‌ها
  • درباره
  • خدمات
  • مقالات
  • فیلم آموزشی
  • تماس
  • فروشگاه
  • سبد خرید
  • پرداخت
  • حساب کاربری من
  • صفحه اصلی
  • درباره
  • خدمات
  • مقالات
  • فیلم آموزشی
  • تماس
  • فروشگاه
  • سبد خرید
  • پرداخت
  • حساب کاربری من
  • صفحه اصلی

وبلاگ

توسعه محصول و کسب و کار نرم افزار > مقالات > مقاله > توسعه وب > اندرخم معجزات وب کانفیگ در ASP.NET

اندرخم معجزات وب کانفیگ در ASP.NET

access_time۱۳۸۹-۰۱-۲۰
perm_identity ارسال شده توسط حمیدرضا متقیان
folder_open توسعه وب ، مقاله
visibility 7 بازدید

گاهی اوقات ممکنه بخواین از یه سری مقادیر در کل پروژه به دفعات استفاده کنید. روش های مختلفی از Session گرفته تا Xml،ViewState و Cache و … به ذهن خطور میکنه که بسته به شرایط پروژه و نوع اطلاعات و در واقع شرایط اطلاعات تصمیم های مختلفی میشه گرفت. یکی از کارهایی که میشه کرد استفاده از قابلیتی هست که در ASP.NET وب کانفیگ در اختیارمون گذاشته.
شما میتونید با استفاده از تگ appSettings در configuration مقادیر مورد نظرتون رو اضافه کنید باینصورت:

XHTML
1
2
3
4
5
<configuration>
<appSettings>
<add key="websiteName" value="My New Website"/>
<add key="welcomeMessage" value="Welcome to my new Website, friend!"/>
</appSettings>

و به اینصورت مقادیر رو بخونید:

C#
1
2
3
4
5
6
7
8
using System.Configuration;
protected void Page_Load(object sender, EventArgs e)
{
lblSiteName.Text =
ConfigurationManager.AppSettings["websiteName"];
lblWelcome.Text =
ConfigurationManager.AppSettings["welcomeMessage"];
}

در AppSettings شما فقط نوع داده String میتونید تعریف کنید و این مساله باعث ایجاد محدودیت هایی در ذخیره انواع داده های موردنظر شما میشه. یه روش کاملتر اینه که از configSections استفاده کنید. در این روش شما با تعریف یه ساختار مشخص از اطلاعاتی که لازم دارید میتونید کارهای خارق العاده ای رو انجام بدید.
بعنوان مثال متناسب با نیازتون یه تگ به اسم orderService با ویژگی های ذیل تعریف می کنید:

XHTML
1
2
<orderService available="true" pollTimeout="00:01:00"
location="tcp://OrderComputer:8010/OrderService"/>

زیبایی روش به اینجاش هست که شما با یه کلاس سر و کار خواهید داشت طبق مشخصه های اون تگ:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class OrderService : ConfigurationSection
{
[ConfigurationProperty("available",
IsRequired = false, DefaultValue = true)]
public bool Available
{
get { return (bool)base["available"]; }
set { base["available"] = value; }
}
[ConfigurationProperty("pollTimeout",
IsRequired = true)]
public TimeSpan PollTimeout
{
get { return (TimeSpan)base["pollTimeout"]; }
set { base["pollTimeout"] = value; }
}
[ConfigurationProperty("location",
IsRequired = true)]
public string Location
{
get { return (string)base["location"]; }
set { base["location"] = value; }
}
}

حالا باید این کلاس رو در configSection ثبت کنید:

XHTML
1
2
3
4
5
6
7
8
9
<configuration>
<configSections>
...
<section name="orderService" type="OrderService" />
</configSections>
<orderService available="true" pollTimeout="00:01:00"
location="tcp://OrderComputer:8010/OrderService"/>
<system.web>...</system.web>
</configuration>

دسترسی در این حالت به این صورت خواهد بود:

C#
1
2
3
4
5
6
7
Configuration config = WebConfigurationManager.OpenWebConfiguration("/");
OrderService custSection =
(OrderService)config.GetSection("orderService");
lblInfo.Text += "Retrieved service information...<br />" +
"<b>Location:</b> " + custSection.Location +
"<br /><b>Available:</b> " + custSection.Available.ToString() +
"<br /><b>Timeout:</b> " + custSection.PollTimeout.ToString() + "<br /><br />";

ممکنه شما بخوای زیرمجموعه اون تگ یه آیتم دیگه هم اضافه کنی مثلا به این صورت:

XHTML
1
2
3
<orderService available="true" pollTimeout="00:01:00">
<location computer="OrderComputer" port="8010" endpoint="OrderService" />
</orderService>

کلاسش اینجوری میشه:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Location : ConfigurationElement
{
[ConfigurationProperty("computer",
IsRequired = true)]
public string Computer
{
get { return (string)base["computer"]; }
set { base["computer"] = value; }
}
[ConfigurationProperty("port",
IsRequired = true)]
public int Port
{
get { return (int)base["port"]; }
set { base["port"] = value; }
}
[ConfigurationProperty("endpoint",
IsRequired = true)]
public string Endpoint
{
get { return (string)base["endpoint"]; }
set { base["endpoint"] = value; }
}
}

و باید در کلاس OrderService هم ارتباط دو کلاس رو برقرار کنی:

C#
1
2
3
4
5
6
7
[ConfigurationProperty("location",
IsRequired = true)]
public Location Location
{
get { return (Location)base["location"]; }
set { base["location"] = value; }
}

حالا:

C#
1
lblInfo.Text = "<b>Server:</b> " + custSection.Location.Computer;

موفق باشید.
پ.ن: جهت کسب اطلاعات بیشتر میتونید به کتاب Apress Pro ASP.NET 3.5 مراجعه کنید.

Share
اشتراک گذاری:
درباره حمیدرضا متقیان

مدیر محصول نرم افزار. علاقه مند به دنیای وب و ارزش آفرینی در کسب و کار.

نوشته های بیشتر از حمیدرضا متقیان
مطالب زیر را حتما بخوانید
  • startup
    اشتیاق اولیه استارتاپ ها و سراب ها

    1.15k بازدید

  • 24 تله ی رایج در اسکرام
    ۲۴ تله ی رایج در اسکرام (بخش دوم – آخر)

    16 بازدید

  • تعرفه نرخ پایه خدمات فناوری اطلاعات سال ۹۴
    تعرفه نرخ پایه خدمات فناوری اطلاعات سال ۹۴

    9 بازدید

  • آینده در دستان اینترنت اشیا (IoT)

    19 بازدید

  • انتشار ویرایش دوم کتاب Scrum & XP

    10 بازدید

پاسخی بگذارید لغو پاسخ

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

آخرین نظرات
  • بایدها و نبایدها در ارائه پروپوزال نرم افزار Proposal - توسعه محصول و کسب و کار نرم افزارتوسعه محصول و کسب و کار نرم افزار در بندهای حیاتی یک قرارداد تولید نرم افزار
  • تقابل آریوپی و اجایل - توسعه محصول و کسب و کار نرم افزارتوسعه محصول و کسب و کار نرم افزار در چک لیست شکست در RUP (آر یو پی)
  • یوزر اینترفیس (رابط کاربری) به سبک اجایل #1 - توسعه محصول و کسب و کار نرم افزارتوسعه محصول و کسب و کار نرم افزار در یوزر اینترفیس (رابط کاربری) به سبک اجایل #۲
  • 5 افسانه چابکی - توسعه محصول و کسب و کار نرم افزارتوسعه محصول و کسب و کار نرم افزار در تقابل آریوپی و اجایل
  • یوزر اینترفیس (طراحی رابط کاربری) به سبک اجایل #2 - توسعه محصول و کسب و کار نرم افزارتوسعه محصول و کسب و کار نرم افزار در یوزر اینترفیس(رابط کاربری) به سبک اجایل #۳
  • location_on
    تهرن، یوسف آباد، ...
  • phone_android
    02188002121
  • email
    [email protected]
تمامی حقوق برای سایت استادیار محفوظ می باشد.
keyboard_arrow_up