Injectez facilement différentes implémentations concrètes de services et différentes valeurs de configuration par locataire.
cd src
dotnet clean && dotnet pack Multitenancy/ && dotnet build && dotnet test ../test/MultitenantAspApp.Tests/MultitenantAspApp.Tests.csproj && dotnet run --project MultitenantAspAppVous pouvez maintenant consulter
http://localhost:5000/XX/api/ValuesWithDependencies
http://localhost:5000/SZ/api/ValuesWithDependencies
http://localhost:5000/XX/api/ValuesWithOptions
http://localhost:5000/SZ/api/ValuesWithOptions
Notez les différentes sorties par locataire.
Dans votre projet ASP.NET, prenez une dépendance sur le package Multitenancy :
dotnet add package Multitenancyet, après avoir configuré toutes vos dépendances, configurez les remplacements/dépendances individuelles pour chacun de vos locataires :
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" ;
} ) ;
} ) ; Ajouter le middleware dans la méthode Configure
app . UseMultitenancy ( ) ;Ajoutez un préfixe d'itinéraire.
Si vous souhaitez pouvoir transmettre le paramètre string tenantId aux actions de votre contrôleur, vous pouvez ajouter un préfixe de route qui identifie le locataire et le transmet à vos méthodes d'action.
Pour ce faire, dans votre fichier Startup.cs vous devez modifier l'enregistrement Mvc dans la méthode ConfigureServices de
services . AddMvcCore ( ) ;à
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } ) Vous pouvez modifier le nom par défaut de tenantId en appelant UseTenantRoutePrefix() avec le nom souhaité : UseTenantRoutePrefix("tenantIdentifier") .