CoreMultitenancy
1.0.0
輕鬆注入服務的不同具體實作和每個租用戶的不同配置值。
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 ( ) ;
新增路由前綴。
如果您希望能夠將string tenantId
參數傳遞給您的控制器操作,您可以新增一個路由前綴來識別租用戶並將其傳遞給您的操作方法。
為此,在Startup.cs
檔案中,您必須將ConfigureServices
方法中的 Mvc 註冊更改為
services . AddMvcCore ( ) ;
到
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } )
您可以透過使用所需名稱呼叫UseTenantRoutePrefix()
來變更tenantId
的預設名稱: UseTenantRoutePrefix("tenantIdentifier")
。