Да, есть способ. Вам нужно будет написать расширение, которое добавляет пользовательскую BuilderStrategy на этап PostInitialization Unity BuildPipeline.
Код для расширения и стратегии должны выглядеть примерно так:
public class SubscriptionExtension : UnityContainerExtension
{
protected override void Initialize()
{
var strategy = new SubscriptionStrategy();
Context.Strategies.Add(strategy, UnityBuildStage.PostInitialization);
}
}
public class SubscriptionStrategy : BuilderStrategy
{
public override void PostBuildUp(IBuilderContext context)
{
if (context.Existing != null)
{
LoaderDriver ld = context.Existing as LoaderDriver;
if(ld != null)
{
ld.LoadComplete += Program_LoadComplete;
}
}
}
}
Затем добавить расширение к контейнеру
container.AddNewExtension<SubscriptionExtension>();
И когда вы разрешить экземпляр LoaderDriver он будет автоматически подписаться EventHandler.
Вы можете найти рабочий образец, который подписывается на классы EventAggregator в проекте TecX. Исходный код находится в проекте TecX.Event.Unity.