File: Program.cs
Web Access
Project: src\playground\AzureServiceBus\ServiceBus.AppHost\ServiceBus.AppHost.csproj (ServiceBus.AppHost)
using System.Text.Json.Nodes;
using Aspire.Hosting.Azure;
 
var builder = DistributedApplication.CreateBuilder(args);
 
var serviceBus = builder.AddAzureServiceBus("sbemulator");
 
serviceBus.AddServiceBusQueue("queueOne", "queue1")
    .WithProperties(queue => queue.DeadLetteringOnMessageExpiration = false);
 
serviceBus.AddServiceBusTopic("topicOne", "topic1")
    .AddServiceBusSubscription("sub1")
    .WithProperties(subscription =>
    {
        subscription.MaxDeliveryCount = 10;
 
        var rule = new AzureServiceBusRule("app-prop-filter-1")
        {
            CorrelationFilter = new()
            {
                ContentType = "application/text",
                CorrelationId = "id1",
                Subject = "subject1",
                MessageId = "msgid1",
                ReplyTo = "someQueue",
                ReplyToSessionId = "sessionId",
                SessionId = "session1",
                SendTo = "xyz"
            }
        };
        subscription.Rules.Add(rule);
    });
 
serviceBus.RunAsEmulator(configure => configure.WithConfiguration(document =>
{
    document["UserConfig"]!["Logging"] = new JsonObject { ["Type"] = "Console" };
}).WithLifetime(ContainerLifetime.Persistent));
 
builder.AddProject<Projects.ServiceBusWorker>("worker")
    .WithReference(serviceBus).WaitFor(serviceBus);
 
builder.Build().Run();