![]() |
VOOZH | about |
dotnet add package Franz.Common.Messaging.MultiTenancy --version 2.2.7
NuGet\Install-Package Franz.Common.Messaging.MultiTenancy -Version 2.2.7
<PackageReference Include="Franz.Common.Messaging.MultiTenancy" Version="2.2.7" />
<PackageVersion Include="Franz.Common.Messaging.MultiTenancy" Version="2.2.7" />Directory.Packages.props
<PackageReference Include="Franz.Common.Messaging.MultiTenancy" />Project file
paket add Franz.Common.Messaging.MultiTenancy --version 2.2.7
#r "nuget: Franz.Common.Messaging.MultiTenancy, 2.2.7"
#:package Franz.Common.Messaging.MultiTenancy@2.2.7
#addin nuget:?package=Franz.Common.Messaging.MultiTenancy&version=2.2.7Install as a Cake Addin
#tool nuget:?package=Franz.Common.Messaging.MultiTenancy&version=2.2.7Install as a Cake Tool
A library within the Franz Framework that adds multi-tenancy support to messaging workflows. This package provides tools for managing tenant and domain-specific messaging contexts, enabling seamless integration of multi-tenancy in distributed systems.
Tenant Context Management:
TenantContextAccessor for handling tenant-specific data in messaging workflows.Domain Context Management:
DomainContextAccessor for managing domain-specific information during message processing.Resolvers:
HeaderTenantResolver and HeaderDomainResolver for resolving multi-tenancy metadata from message headers.MessagePropertyTenantResolver and MessagePropertyDomainResolver for resolving multi-tenancy metadata from message properties.Resolution Pipelines:
DefaultTenantResolutionPipeline and DefaultDomainResolutionPipeline to coordinate multiple resolvers in order.Middleware:
TenantResolutionMiddleware and DomainResolutionMiddleware for automatic resolution per message.Service Registration:
ServiceCollectionExtensions to simplify the setup of multi-tenancy messaging services.Message Builders:
TenantMessageBuilder and DomainMessageBuilder for constructing messages with tenant and domain data.This package relies on:
Since this package is hosted privately, configure your NuGet client:
dotnet nuget add source "https://your-private-feed-url" \
--name "AzurePrivateFeed" \
--username "YourAzureUsername" \
--password "YourAzurePassword" \
--store-password-in-clear-text
Install the package:
dotnet add package Franz.Common.Messaging.MultiTenancy --Version 1.3.1
Use ServiceCollectionExtensions to register messaging multi-tenancy services:
using Franz.Common.Messaging.MultiTenancy.Extensions;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddFranzMessagingMultiTenancy();
}
}
Leverage TenantContextAccessor and DomainContextAccessor to retrieve tenant and domain-specific data:
using Franz.Common.Messaging.MultiTenancy;
public class TenantService
{
private readonly ITenantContextAccessor _tenantContextAccessor;
public TenantService(ITenantContextAccessor tenantContextAccessor)
{
_tenantContextAccessor = tenantContextAccessor;
}
public Guid? GetCurrentTenantId() => _tenantContextAccessor.GetCurrentTenantId();
}
using Franz.Common.Messaging.MultiTenancy;
public class DomainService
{
private readonly IDomainContextAccessor _domainContextAccessor;
public DomainService(IDomainContextAccessor domainContextAccessor)
{
_domainContextAccessor = domainContextAccessor;
}
public Guid? GetCurrentDomainId() => _domainContextAccessor.GetCurrentDomainId();
}
Enable middleware to resolve tenant and domain per-message:
using Franz.Common.Messaging.MultiTenancy.Middleware;
public class MessagingPipeline
{
public void Configure(IMessagePipelineBuilder pipeline)
{
pipeline.Use<TenantResolutionMiddleware>();
pipeline.Use<DomainResolutionMiddleware>();
}
}
Use TenantMessageBuilder and DomainMessageBuilder to create tenant and domain-aware messages:
using Franz.Common.Messaging.MultiTenancy;
var tenantMessage = new TenantMessageBuilder()
.WithTenantId(Guid.NewGuid())
.Build();
var domainMessage = new DomainMessageBuilder()
.WithDomainId(Guid.NewGuid())
.Build();
The Franz.Common.Messaging.MultiTenancy package integrates seamlessly with:
This package is part of a private framework. Contributions are limited to the internal development team. If you have access, follow these steps:
This library is licensed under the MIT License. See the LICENSE file for more details.
TenantContextAccessor and DomainContextAccessor for managing tenant and domain contexts.TenantMessageBuilder and DomainMessageBuilder for constructing tenant and domain-aware messages.ServiceCollectionExtensions for streamlined multi-tenancy messaging setup.Expanded messaging multi-tenancy abstractions to align with HTTP and core multi-tenancy:
HeaderTenantResolver and HeaderDomainResolver.MessagePropertyTenantResolver and MessagePropertyDomainResolver.DefaultTenantResolutionPipeline and DefaultDomainResolutionPipeline to orchestrate resolvers.TenantResolutionMiddleware and DomainResolutionMiddleware for automatic resolution in messaging pipelines.Enhanced TenantContextAccessor and DomainContextAccessor to fully implement the updated core contracts (GetCurrentTenantId, SetCurrentTenantId, etc.).
Extended Message with a Properties dictionary for application-level metadata.
Added MessagePropertiesExtensions for strongly-typed property access.
Improved service registration via AddFranzMessagingMultiTenancy.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 2 NuGet packages that depend on Franz.Common.Messaging.MultiTenancy:
| Package | Downloads |
|---|---|
|
Franz.Common.Messaging.Bootstrap
Shared utility library for the Franz Framework. |
|
|
Franz.Common.Http.Messaging
Shared utility library for the Franz Framework. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.7 | 116 | 6/7/2026 |
| 2.2.6 | 115 | 6/6/2026 |
| 2.2.5 | 117 | 6/4/2026 |
| 2.2.4 | 111 | 6/3/2026 |
| 2.2.3 | 115 | 6/2/2026 |
| 2.2.2 | 115 | 6/2/2026 |
| 2.2.1 | 114 | 5/24/2026 |
| 2.1.4 | 128 | 4/27/2026 |
| 2.1.3 | 116 | 4/26/2026 |
| 2.1.2 | 111 | 4/26/2026 |
| 2.1.1 | 123 | 4/22/2026 |
| 2.0.2 | 134 | 3/30/2026 |
| 2.0.1 | 130 | 3/29/2026 |
| 1.7.8 | 129 | 3/2/2026 |
| 1.7.7 | 138 | 1/31/2026 |
| 1.7.6 | 129 | 1/22/2026 |
| 1.7.5 | 139 | 1/10/2026 |
| 1.7.4 | 139 | 12/27/2025 |
| 1.7.3 | 225 | 12/22/2025 |
| 1.7.2 | 228 | 12/21/2025 |