44using Aspire . Hosting ;
55using Aspire . Hosting . ApplicationModel ;
66using Aspire . Hosting . Eventing ;
7+ using Aspire . Hosting . Lifecycle ;
78using Aspire . Hosting . Utils ;
89using Microsoft . Extensions . Configuration ;
910using Microsoft . Extensions . DependencyInjection ;
@@ -22,14 +23,22 @@ internal sealed class DaprDistributedApplicationLifecycleHook(
2223 IConfiguration configuration ,
2324 IHostEnvironment environment ,
2425 ILogger < DaprDistributedApplicationLifecycleHook > logger ,
25- IOptions < DaprOptions > options ) : IDisposable
26+ IOptions < DaprOptions > options ,
27+ DistributedApplicationExecutionContext executionContext ) : IDistributedApplicationEventingSubscriber , IDisposable
2628{
2729 private readonly DaprOptions _options = options . Value ;
2830
2931 private string ? _onDemandResourcesRootPath ;
3032
31- public async Task BeforeStartAsync ( DistributedApplicationModel appModel , CancellationToken cancellationToken = default )
33+ public Task SubscribeAsync ( IDistributedApplicationEventing eventing , DistributedApplicationExecutionContext executionContext , CancellationToken cancellationToken )
3234 {
35+ eventing . Subscribe < BeforeStartEvent > ( OnBeforeStartAsync ) ;
36+ return Task . CompletedTask ;
37+ }
38+
39+ private async Task OnBeforeStartAsync ( BeforeStartEvent @event , CancellationToken cancellationToken = default )
40+ {
41+ var appModel = @event . Model ;
3342 string appHostDirectory = GetAppHostDirectory ( ) ;
3443
3544 // Set up WaitAnnotations for Dapr components based on their value provider dependencies
0 commit comments