Fügen Sie ganz einfach unterschiedliche konkrete Implementierungen von Diensten und unterschiedliche Konfigurationswerte pro Mandant ein.
cd src
dotnet clean && dotnet pack Multitenancy/ && dotnet build && dotnet test ../test/MultitenantAspApp.Tests/MultitenantAspApp.Tests.csproj && dotnet run --project MultitenantAspApp
Sie können jetzt zur Kasse gehen
http://localhost:5000/XX/api/ValuesWithDependencies
http://localhost:5000/SZ/api/ValuesWithDependencies
http://localhost:5000/XX/api/ValuesWithOptions
http://localhost:5000/SZ/api/ValuesWithOptions
Beachten Sie die unterschiedlichen Ausgaben pro Mandant.
Nehmen Sie in Ihrem ASP.NET-Projekt eine Abhängigkeit vom Multitenancy-Paket vor:
dotnet add package Multitenancy
und nachdem Sie alle Ihre Abhängigkeiten eingerichtet haben, richten Sie die Überschreibungen/einzelnen Abhängigkeiten für jeden Ihrer Mandanten ein:
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" ;
} ) ;
} ) ;
Fügen Sie die Middleware in der Methode Configure
hinzu
app . UseMultitenancy ( ) ;
Routenpräfix hinzufügen.
Wenn Sie den string tenantId
an Ihre Controller-Aktionen übergeben möchten, können Sie ein Routenpräfix hinzufügen, das den Mandanten identifiziert und an Ihre Aktionsmethoden weitergibt.
Dazu müssen Sie in Ihrer Startup.cs
Datei die Mvc-Registrierung in der Methode ConfigureServices
ändern
services . AddMvcCore ( ) ;
Zu
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } )
Sie können den Standardnamen von tenantId
ändern, indem Sie UseTenantRoutePrefix()
mit dem gewünschten Namen aufrufen: UseTenantRoutePrefix("tenantIdentifier")
.