Как зарегистрировать все типы интерфейса и получить их экземпляр в единстве?

Как единство может получить все экземпляры интерфейса и затем получить к ним доступ?

Куски кода взяты отсюда:Нормально-Tracker

В StrcutureMap можно зарегистрировать все типы интерфейса из сборки, а затем получить к ним доступ следующим образом:

public class TaskRegistry : Registry
{
    public TaskRegistry()
    {
        Scan(scan =>
        {
            scan.AssembliesFromApplicationBaseDirectory(
                a => a.FullName.StartsWith("FailTracker"));
            scan.AddAllTypesOf<IRunAtInit>();
            scan.AddAllTypesOf<IRunAtStartup>();
            scan.AddAllTypesOf<IRunOnEachRequest>();
            scan.AddAllTypesOf<IRunOnError>();
            scan.AddAllTypesOf<IRunAfterEachRequest>();
        });
    }
}


  ObjectFactory.Configure(cfg =>
        {

            cfg.AddRegistry(new TaskRegistry());

        });

а затем получить доступ ко всем типам, реализующим эти интерфейсы, такие как:

        using (var container = ObjectFactory.Container.GetNestedContainer())
        {
            foreach (var task in container.GetAllInstances<IRunAtInit>())
            {
                task.Execute();
            }

            foreach (var task in container.GetAllInstances<IRunAtStartup>())
            {
                task.Execute();
            }
        }

Что эквивалентно этому коду в единстве?

Как я могу получить их в Application_BeginRequest, как Structuremap

public void Application_BeginRequest()
    {
        Container = ObjectFactory.Container.GetNestedContainer();

        foreach (var task in Container.GetAllInstances<IRunOnEachRequest>())
        {
            task.Execute();
        }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос