У меня есть контроллер api, который я хочу зарегистрировать во время выполнения в моем приложении mvc. Самого контроллера находится в проект библиотек классов и выглядит следующим образом:Регистрация пользовательского контроллера во время выполнения
public class CustomController : ApiController
{
public string Get()
{
return "Hello";
}
}
Я скомпилировать эту библиотеку (дал ему имя Injection.dll
), и в моем MVC приложения попытается зарегистрировать этот контроллер с помощью библиотеки контейнера Unity.Mvc
public static class UnityConfig
{
public static void RegisterComponents()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
// e.g. container.RegisterType<ITestService, TestService>();
Assembly customLogicAssembly = Assembly.LoadFrom(HttpContext.Current.Server.MapPath("~/bin/" + "Injection.dll"));
Type existingType = customLogicAssembly.GetTypes().First();
container.RegisterType(existingType);
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
}
Таким образом, кажется, что регистрация работает нормально, и я не имеют ошибок при debuggig, но я не ожидал результата, когда я перейти к API/Пользовательский/Get я есть The resource cannot be found.
ошибку в браузер. Помогите нам пропустить здесь.
Вы настроены 1. маршруты для веб-api? 2. фабрика контроллера единства для вашего прилагаемого пользовательского контроллера api? –