แทรกการใช้งานบริการที่เป็นรูปธรรมที่แตกต่างกันและค่าการกำหนดค่าที่แตกต่างกันต่อผู้เช่าได้อย่างง่ายดาย
cd src
dotnet clean && dotnet pack Multitenancy/ && dotnet build && dotnet test ../test/MultitenantAspApp.Tests/MultitenantAspApp.Tests.csproj && dotnet run --project MultitenantAspApp
ตอนนี้คุณสามารถตรวจสอบได้
http://localhost:5000/XX/api/ValuesWithDependencies
http://localhost:5000/SZ/api/ValuesWithDependencies
http://localhost:5000/XX/api/ValuesWithOptions
http://localhost:5000/SZ/api/ValuesWithOptions
สังเกตผลลัพธ์ที่แตกต่างกันต่อผู้เช่า
ในโครงการ ASP.NET ของคุณ ให้พึ่งพาแพ็คเกจ Multitenancy:
dotnet add package Multitenancy
และหลังจากที่คุณตั้งค่าการขึ้นต่อกันทั้งหมดแล้ว ให้ตั้งค่าการแทนที่/การขึ้นต่อกันแต่ละรายการสำหรับผู้เช่าแต่ละรายของคุณ:
services . ConfigureTenant ( t =>
{
t . TenantId = "SZ" ;
t . ServiceCollection . AddTransient < IHelloWorldService , SzHelloWorldService > ( ) ;
t . ServiceCollection . Configure < ValuesControllerOptions > ( o =>
{
o . Value1Value = 42 ;
o . Value2Value = "value1_configured_by_delegate_for_SZ" ;
} ) ;
} ) ;
เพิ่มมิดเดิลแวร์ในวิธี Configure
app . UseMultitenancy ( ) ;
Add route prefix.
หากคุณต้องการส่งพารามิเตอร์ string tenantId
ไปยังการดำเนินการของคอนโทรลเลอร์ คุณสามารถเพิ่มคำนำหน้าเส้นทางที่ระบุผู้เช่าและส่งต่อไปยังวิธีดำเนินการของคุณได้
ในการดำเนินการนี้ ในไฟล์ Startup.cs
คุณต้องเปลี่ยนการลงทะเบียน Mvc ในวิธี ConfigureServices
จาก
services . AddMvcCore ( ) ;
ถึง
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } )
คุณสามารถเปลี่ยนชื่อเริ่มต้นของ tenantId
ได้โดยการเรียก UseTenantRoutePrefix()
ด้วยชื่อที่ต้องการ: UseTenantRoutePrefix("tenantIdentifier")