ASP.NET Core 1 – قسمت هشتم
1395/01/27 - 10:18:51 // MVC 5 & 6 // 0 نظر // 4167 بازدید
همانطور که بخشهای قبلی مشاهده شد ، متد Configure کامل Injectable است . این به این معناست که ASP.NET همانطور که پارامترهای متد Configure مشخص میکند به همراه متد ConfigureService به عنوان یک Service Container تشخیص میدهد که چه Object به آن پاس داده شده است .
بسمه تعالی
ASP.NET Core 1 – قسمت هشتم
همانطور که بخشهای قبلی مشاهده شد ، متد Configure کامل Injectable است . این به این معناست که ASP.NET همانطور که پارامترهای متد Configure مشخص میکند به همراه متد ConfigureService به عنوان یک Service Container تشخیص میدهد که چه Object به آن پاس داده شده است . به عنوان مثال پارامتر IGreeter یک Custom Service میباشد و همانطور که مشهود است توسط ما در سرویس Register شده تا بتوان از آن استفاده نمود . یا مثلا IApplicationBuilder یک سرویس پیش فرض است که از ابتدا در بدنه پروژه وجود دارد .
شاید به Service Type های دیگری هم نیاز داشته باشیم . مثلا یکی دیگر از این Service Type ها می تواند IHostingEnvironment باشد . با داشتن یک Instant از این Interface میتوان از محیط اجرای Application یک سری اطلاعات کامل در اختیار داشت . اجازه بدهید از این Interface به عنوان ورودی متد استفاده کرده و کاربرد آنرا مشاهده کنیم .
ورودی متد Configure را به شکل زیر تغییر دهید .
یکی از متدهای این Instant میتواند به ما نشان دهد پروژه از لحاظ وضعیت چگونه می باشد . مثلا آیا در مرحله Develop است یا در مرحله Production و .... یا مثلن میتوان Root پروژه را با یک متد ساده از این Instant تشخیص داد . اگر قصد داشته باشید مسیر WWWROOT را داشته باشید ، این دستور عملن میتواند کارگشا باشد . در حال حاضر قصد داریم از این قابلیتها استفاده کنیم .
خوب حالا با ببینید با همین چند دستور ساده چگونه وضعیت نمایش صفحه خطا و اینکه چه صفحه ای را کجا و کی باید نمایش دهد را مدیریت خواهیم نمود .
در ابتدا باید بدانم پروژه در وضعیت Development است یا نه . مانند زیر عمل کنید .
خوب با این IF ساده و فرستادن خط دستور APP.UseDeveloperExecptionPage به درون IF Block ، فقط اگر در وضعیت Development قرار داشته باشیم این صفحه نمایش داده خواهد شد و دیگر در وضعیت Production یکباره همه چیز را به کاربر نمایش نداده و امنیت برنامه را به خطر نخواهد انداخت .
سوال : چکونه VS.NET متوجه میشود در وضعیت Development قرار داریم ؟.
پاسخ : وارد Solution Explorer شود و بر روی نام Solution یک Right Click کرده و به Tab آخر یعنی Debug بروید. میببنید که در این TAB یک Environment Variable داریم که روی وضعیت Development هم قرار دارد . تا وقتی در محیط VS.NET باشیم عملن همیشه داخل این IF Block عمل خواهد کرد . در قسمت بعدی خواهید دید که چگونه باید برای این IF Block یک Else هم ایجاد شود و تصمیم گیریهای لازم در آنجا چگونه خواهد بود .
موفق باشید
معرفی نویسنده : علی کلاهدوزان
سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .