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 MultitenantAspAppAnda 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 Multitenancydan, 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") .