Inyecte fácilmente diferentes implementaciones concretas de servicios y diferentes valores de configuración por inquilino.
cd src
dotnet clean && dotnet pack Multitenancy/ && dotnet build && dotnet test ../test/MultitenantAspApp.Tests/MultitenantAspApp.Tests.csproj && dotnet run --project MultitenantAspApp
Ya puedes consultar
http://localhost:5000/XX/api/ValuesWithDependencies
http://localhost:5000/SZ/api/ValuesWithDependencies
http://localhost:5000/XX/api/ValuesWithOptions
http://localhost:5000/SZ/api/ValuesWithOptions
Observe las diferentes salidas por inquilino.
En su proyecto ASP.NET, dependa del paquete Multitenancy:
dotnet add package Multitenancy
y, después de configurar todas sus dependencias, configure las anulaciones/dependencias individuales para cada uno de sus inquilinos:
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" ;
} ) ;
} ) ;
Agregue el middleware en el método Configure
app . UseMultitenancy ( ) ;
Agregar prefijo de ruta.
Si desea poder pasar el parámetro string tenantId
a las acciones de su controlador, puede agregar un prefijo de ruta que identifique al inquilino y lo pase a sus métodos de acción.
Para hacer esto, en su archivo Startup.cs
debe cambiar el registro Mvc en el método ConfigureServices
de
services . AddMvcCore ( ) ;
a
services . AddMvcCore ( o => { o . UseTenantRoutePrefix ( ) ; } )
Puede cambiar el nombre predeterminado de tenantId
llamando UseTenantRoutePrefix()
con el nombre deseado: UseTenantRoutePrefix("tenantIdentifier")
.