Skip to content
Docs Try Aspire

IDistributedApplicationTestingBuilder Properties

Interface Properties 11 members
A builder for creating instances of Hosting.DistributedApplication for testing purposes.
AppHostAssembly Section titled AppHostAssembly virtualnullable Assembly?
Assembly of the app host project.
public virtual Assembly? AppHostAssembly { get; }
AppHostDirectory Section titled AppHostDirectory virtual string
Directory of the project where the app host is located. Defaults to the content root if there's no project.
public virtual string AppHostDirectory { get; }
Configuration Section titled Configuration virtual ConfigurationManager
Gets the set of key/value configuration properties.
public virtual ConfigurationManager Configuration { get; }
This can be mutated by adding more configuration sources, which will update its current view.
Environment Section titled Environment virtual IHostEnvironment
Gets the information about the hosting environment an application is running in.
public virtual IHostEnvironment Environment { get; }
Eventing Section titled Eventing virtual IDistributedApplicationEventing
Eventing infrastructure for AppHost lifecycle.
public virtual IDistributedApplicationEventing Eventing { get; }
ExecutionContext Section titled ExecutionContext virtual DistributedApplicationExecutionContext
Execution context for this invocation of the AppHost.
public virtual DistributedApplicationExecutionContext ExecutionContext { get; }

The IDistributedApplicationBuilder.ExecutionContext property provides access key information about the context in which the distributed application is running. The most important properties that the Hosting.DistributedApplicationExecutionContext provides is the DistributedApplicationExecutionContext.IsPublishMode and DistributedApplicationExecutionContext.IsRunMode properties. Developers building .NET Aspire based applications may whish to change the application model depending on whether they are running locally, or whether they are publishing to the cloud.

An example of using the DistributedApplicationExecutionContext.IsRunMode property on the Hosting.IDistributedApplicationBuilder via the IResourceBuilder`1.ApplicationBuilder. In this case an extension method is used to generate a stable node name for RabbitMQ for local development runs.

private static IResourceBuilder<RabbitMQServerResource> RunWithStableNodeName(
this IResourceBuilder<RabbitMQServerResource> builder)
{
if (builder.ApplicationBuilder.ExecutionContext.IsRunMode)
{
builder.WithEnvironment(context =>
{
// Set a stable node name so queue storage is consistent between sessions
var nodeName = $"{builder.Resource.Name}@localhost";
context.EnvironmentVariables["RABBITMQ_NODENAME"] = nodeName;
});
}
return builder;
}
FileSystemService Section titled FileSystemService virtual IFileSystemService
public virtual IFileSystemService FileSystemService { get; }
Pipeline Section titled Pipeline virtual IDistributedApplicationPipeline
public virtual IDistributedApplicationPipeline Pipeline { get; }
Resources Section titled Resources virtual IResourceCollection
Gets the collection of resources for the distributed application.
public virtual IResourceCollection Resources { get; }
This can be mutated by adding more resources, which will update its current view.
Services Section titled Services virtual IServiceCollection
Gets a collection of services for the application to compose. This is useful for adding user provided or framework provided services.
public virtual IServiceCollection Services { get; }
UserSecretsManager Section titled UserSecretsManager virtual IUserSecretsManager
public virtual IUserSecretsManager UserSecretsManager { get; }