J'utilise Autofac comme conteneur IoC avec le package Autofac.Multitenant
pour le multi-tenancy.L'application ASP.NET multi-locataires Autofac renvoie le locataire à la place de l'identifiant
J'ai une configuration de conteneur comme ceci:
var builder = new ContainerBuilder();
// Register the controllers
builder.RegisterControllers(typeof(Deskful.Web.DeskfulApplication).Assembly);
// Tenant Identifier
var tenantIdentifier = new RequestSubdomainStrategy();
builder.RegisterInstance(tenantIdentifier).As<ITenantIdentificationStrategy>();
// Build container
var container = builder.Build();
// Tenant container
var mtc = new MultitenantContainer(tenantIdentifier, container);
// Set autofac as dependency resolver
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Et ma stratégie d'identification:
public class RequestSubdomainStrategy : ITenantIdentificationStrategy
{
public bool TryIdentifyTenant(out object tenantId)
{
tenantId = null;
try
{
var context = HttpContext.Current;
if (context != null && context.Request != null)
{
var site = context.Request.Url.Host;
tenantId = 1;
}
}
catch { }
return tenantId != null;
}
}
Puis, dans mon contrôleur où je dois le locataire que je peux faire ce qui suit après l'injection du ITenantIdentificationStrategy
:
var tenantId = this.TenantIdStrategy.IdentifyTenant<int>();
Ma question est, comment puis-je stocker l'objet locataire d ur mon processus d'identification afin que je puisse accéder à toutes les propriétés du locataire?
Parce que maintenant il ne renvoie que l'ID.