Не удается разрешить контроллер, который был загружен из внешней библиотеки DLL

Я создаю веб-API с использованием MVC4 Web API с контейнером IoC (в данном случае Simple Injector, но я неЯ думаю, что эта проблема связана с этим контейнером, который должен предоставлять различные операции CRUD и запросов. Причиной использования IOC в моем случае является то, что мы являемся разработчиком, и мне нужно иметь возможность позволить клиентам создавать свои собственные контроллеры веб-API для предоставления данных, которые им необходимы для представления потребностей нашей системы. Следовательно, я надеялся спроектировать свое решение таким образом, чтобы я смог соблазнить свой собственный продукт, сделав все контроллеры, как наши, так и наших клиентов ", внешний и загружаемый через МОК.

На сайте нет ссылок на библиотеку, но библиотека содержит контроллеры, которые я хочу использовать на сайте. Типы регистрируются в контейнере, а для DependencyResolver устанавливается настраиваемый преобразователь зависимостей. У меня есть код, который находит плагин dll и загружает тип контроллера, но когда я пытаюсь перейти к маршруту, который он представляет, он говорит, что может 'не могу найти это.

т.е. если я пытаюсь перейти к / api / Test1Api, я должен увидеть текст "Привет, мир"

Моя проблема здесь в том, что, хотя я загрузил свой тип контроллера, я не могу перевести это в маршрут, который, как говорит веб-сайт, есть.

Я получаю ошибку

Не найден ресурс HTTP, соответствующий URI запроса

Не найден тип, соответствующий контроллеру с именем 'Test1Api.

Вот как я регистрирую контейнер

public static class SimpleInjectorInitializer
{
    /// Initialize the container and register it as MVC3 Dependency Resolver.
    public static void Initialize()
    {
        //// Did you know the container can diagnose your configuration? Go to: http://bit.ly/YE8OJj.

        // Create the IOC container.
        var container = new Container();

        InitializeContainer(container);

        container.RegisterMvcAttributeFilterProvider();
        // Verify the container configuration
        container.Verify();

        // Register the dependency resolver.
        GlobalConfiguration.Configuration.DependencyResolver =
                    new SimpleInjectorWebApiDependencyResolver(container);
    }

    private static void InitializeContainer(Container container)
    {
        var appPath = AppDomain.CurrentDomain.BaseDirectory;

        string[] files = Directory.GetFiles(appPath + "\\bin\\Plugins", "*.dll",
            SearchOption.AllDirectories);
        var assemblies = files.Select(Assembly.LoadFile);

        // register Web API controllers
        var apiControllerTypes =
            from assembly in assemblies
            where !assembly.IsDynamic
            from type in assembly.GetExportedTypes()
            where typeof(IHttpController).IsAssignableFrom(type)
            where !type.IsAbstract
            where !type.IsGenericTypeDefinition
            where type.Name.EndsWith("Controller", StringComparison.Ordinal)
            select type;

        // register MVC controllers
        var mvcControllerTypes =
            from assembly in assemblies
            where !assembly.IsDynamic
            from type in assembly.GetExportedTypes()
            where typeof(IController).IsAssignableFrom(type)
            where !type.IsAbstract
            where !type.IsGenericTypeDefinition
            where type.Name.EndsWith("Controller", StringComparison.Ordinal)
            select type;

        foreach (var controllerType in apiControllerTypes)
        {
            container.Register(controllerType);
        }

        foreach (var controllerType in mvcControllerTypes)
        {
            container.Register(controllerType);
        }
    }
}

Любая помощь приветствуется.

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

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