マルチファインダ用Autofac.Multitenant
パッケージのIoCコンテナとしてAutofacを使用しています。Autofac Multi-Tenant ASP.NETアプリケーション
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));
そして、私の識別戦略::私はITenantIdentificationStrategy
を注入した後、次の操作を行うことができテナントを必要とする私のコントローラで次に
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;
}
}
私は、コンテナ、このようなセットアップを持っています:
var tenantId = this.TenantIdStrategy.IdentifyTenant<int>();
私の質問は、テナントオブジェクトdテナントのすべてのプロパティにアクセスできるように、私の識別プロセスを守っていますか?
これでidだけが返されるようになりました。