Dengan mudah memasukkan implementasi layanan konkret yang berbeda dan nilai konfigurasi yang berbeda per penyewa.
cd src
dotnet clean && dotnet pack Multitenancy/ && dotnet build && dotnet test ../test/MultitenantAspApp.Tests/MultitenantAspApp.Tests.csproj && dotnet run --project MultitenantAspApp
Anda sekarang dapat memeriksa
http://localhost:5000/XX/api/ValuesWithDependencies
http://localhost:5000/SZ/api/ValuesWithDependencies
http://localhost:5000/XX/api/ValuesWithOptions
http://localhost:5000/SZ/api/ValuesWithOptions
Perhatikan output yang berbeda per penyewa.
Dalam proyek ASP.NET Anda, ketergantungan pada paket Multitenancy:
dotnet add package Multitenancy
dan, setelah Anda menyiapkan semua dependensi, siapkan override/dependensi individual untuk setiap penyewa Anda:
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" ;
} ) ;
} ) ;
Tambahkan middleware dalam metode Configure
app . UseMultitenancy ( ) ;
Tambahkan awalan rute.
Jika Anda ingin meneruskan parameter string tenantId
ke tindakan pengontrol, Anda dapat menambahkan awalan rute yang mengidentifikasi penyewa dan meneruskannya ke metode tindakan Anda.
Untuk melakukan ini, di file Startup.cs
Anda harus mengubah registrasi Mvc dalam metode ConfigureServices
dari
services . AddMvcCore ( ) ;
ke
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } )
Anda dapat mengubah nama default tenantId
dengan memanggil UseTenantRoutePrefix()
dengan nama yang diinginkan: UseTenantRoutePrefix("tenantIdentifier")
.