WesternBid.Tenancy 1.0.0-ci25
WesternBid.Tenancy
Library for implementing multi-tenancy in .NET applications using Microsoft.Extensions.DependencyInjection.
Features
- Tenant context management via
TenantService - Support for custom tenant resolution strategies
- Built on Microsoft.Extensions.DependencyInjection
- Easy configuration via IOptions pattern
- Simple integration with ASP.NET Core and console applications
How to use
Define Tenant Options
public class AppTenantOptions : ITenantOptions
{
public string Name { get; set; }
public string ConnectionString { get; set; }
public string Theme { get; set; }
public bool IsActive { get; set; }
}
Define Tenant Resolver
public class HeaderTenantResolver : TenantResolverBase<AppTenantOptions>
{
private readonly IHttpContextAccessor _httpContextAccessor;
public HeaderTenantResolver(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public override AppTenantOptions GetTenant(List<AppTenantOptions> tenants)
{
var tenantName = _httpContextAccessor.HttpContext?
.Request.Headers["X-Tenant"].FirstOrDefault();
return tenants.FirstOrDefault(t => t.Name == tenantName);
}
public override string SetTenant(string tenantName)
{
var httpHeaders = _httpContextAccessor.HttpContext?.Request.Headers;
if (httpHeaders != null)
{
httpHeaders["X-Tenant"] = tenantName;
}
}
}
Register in DI
// Configure tenants options
builder.Services.Configure<List<AppTenantOptions>>(
builder.Configuration.GetSection("Tenants"));
// Add tenancy with header-based resolver
builder.Services.AddTenancy<AppTenantOptions, HeaderTenantResolver>();
// Add HTTP context accessor
builder.Services.AddHttpContextAccessor();
No packages depend on WesternBid.Tenancy.
.NET Standard 2.0
- Microsoft.Extensions.Options (>= 10.0.1)
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.2 | 6 | 1/14/2026 |
| 1.0.1 | 5 | 1/13/2026 |
| 1.0.0 | 5 | 1/6/2026 |
| 1.0.0-ci28 | 4 | 1/5/2026 |
| 1.0.0-ci27 | 4 | 1/5/2026 |
| 1.0.0-ci26 | 4 | 1/5/2026 |
| 1.0.0-ci25 | 4 | 1/5/2026 |