1 -به عنوان اولین مورد، میتوان به Global Using اشاره کرد. فرض کنید در یک پروژه مطمئن هستید در همه جا به یک یا چند NameSpaceبه طور قطع نیاز دارید. در حال حاضر در تک تک فایلها باید توسط Using آنرا لحاظ کنید. با این قابلیت جدید که به شکل زیر پیاده سازی خواهد شد، کافی است فقط یکبار یک NameSpace را لحاظ کنید و دیگر در همه جا به صورت خودبخود قابل استفاده خواهد بود
using LoggingTestApp.Data;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace LoggingTestApp
{
public class Startup
{
...
}
}
حالا فرض کنید یک تعدادی از این NameSpace ها را همه جا نیاز داریم، لذا به شکل زیر عمل خواهیم کرد.
global using Microsoft.AspNetCore.Builder;
global using Microsoft.AspNetCore.Hosting;
global using Microsoft.AspNetCore.HttpsPolicy;
global using Microsoft.AspNetCore.Identity;
global using Microsoft.AspNetCore.Identity.UI;
global using Microsoft.EntityFrameworkCore;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading.Tasks;
حتی میتوانید یکسری فایل بی مصرف بسازید همه NameSpaceعمومی را در آن به شکل بالا استفاده کنید و بعد فایل اصلی شما به تمیزی زیر خواهد شد.
using LoggingTestApp.Data; using Serilog; namespace LoggingTestApp { public class Startup { ... } }
مورد بعدی File-scoped namespacesاست. با این قابلیت میتوان عبارت NameSpace را حذف و آنرا به شکل زیر به فایلی که در حال استفاده از آن هستیم اختصاص داد
یعنی وضعیت زیر که تابحال در استفاده از آن هستیم
namespace LoggingTestApp
{
public class Startup
{
...
}
}
به شکل زیر خواهد شد
namespace LoggingTestApp;
public class Startup
{
...
}
حالا باز اگر از NameSpace هم استفاده کنیم، عملن یک وضعیت Sub NameSpace درست خواهد شد
namespace Company.Product;
// ===> Company.Product.Component
namespace Component
{
}
باز هم یکسری دیگر هست که در آینده اضافه خواهد شد