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/ValuesWithDependency
http://localhost:5000/SZ/api/ValuesWithDependency
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 ( ) ; } )
tenantId
のデフォルト名を変更するには、目的の名前 UseTenantRoutePrefix UseTenantRoutePrefix("tenantIdentifier")
を指定してUseTenantRoutePrefix()
呼び出します。