tl;dr: I'm creating `Type` (by reflection) that is extending `ApiController`. How can I dynamically register it (it can be registered at startup; no need to do this at runtime).

Long story:

So in my application I have multiple interfaces, i.e.:

```
interface IMyInterface
{
    MyResponse Hello(MyRequest request);
}

```

The thing that I want to achive is for each interface create controller that should look like this:

```
public class IMyInterfaceController : ApiController
{
    public IMyInterface MyInterface { get; set; }

    public MyResponse Hello([FromBody] MyRequest request)
    {
        return MyInterface.Hello(request);
    }
}

```

Generating this controller is already done using heavy C# reflection. The thing is that I want to do right now is to register this controller under `/api/{controller}/{action}`.

In `Global.asax` right now I got this:

```
public class MvcApplication : System.Web.HttpApplication
{
    private readonly InterfaceReader _reader = new InterfaceReader(); // this class is doing all staff with reflection to create controller class

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);

        var controller = _reader.CreateController(new MyImplementation()); // MuImplementation implements IMyInterface
    }
}

```