@DavB.cs のように ApiControllers をネストした人向けの別のソリューション:
public class ParentController : ApiController
{
public IHttpActionResult Foo()
{
ChildRepository.Foo();
return Ok(...);
}
}
public class ChildRepository : ApiController
{
public HttpResponseMessage Foo()
{
// Do something
return Request.CreateResponse(...);
}
}
単純に、ParentController からの Request を次のように渡すだけです。
public class ParentController : ApiController
{
public IHttpActionResult Foo()
{
ChildRepository.Foo(Request);
return Ok(...);
}
}
public class ChildRepository
{
public HttpResponseMessage Foo(HttpRequestMessage request)
{
// Do something
return request.CreateResponse(...);
}
}
リクエストは ApiController から来ます。これにより、「Request is null」の問題を回避できます。
これが誰かに役立つことを願っています。