Рабочий процесс не использует контейнер IOC.Он использует шаблон ServiceLocator, в котором вы добавляете зависимости в среду выполнения рабочего процесса в качестве расширений и действий рабочего процесса и извлекаете эти службы из расширений рабочего процесса через контекст.
Шаблоны ServiceLocator и IOC аналогичны и имеют одинаковое назначение для разделениязависимостей.Apporach отличается, хотя в контейнере IOC, выдвигающем зависимости, в то время как ServiceLocator используется для извлечения зависимостей.
Пример действия:
public class MyBookmarkedActivity : NativeActivity
{
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
metadata.AddDefaultExtensionProvider<MyExtension>(() => new MyExtension());
}
protected override void Execute(NativeActivityContext context)
{
var extension = context.GetExtension<MyExtension>();
extension.DoSomething();
}
}
Класс MyExtension является здесь расширением и имеетнет требований к базовому классу или интерфейсу.