나는 수업 상속 웹 API의 API 컨트롤러
Square : Rectangle : Shape (abstract)
의 몇 가지를 가지고 내가 사용하고 싶습니다 ApiController에서 상속 기본 컨트롤러가 있습니다.
public abstract class BaseController<T> : ApiController where T : class
{
public abstract IEnumerable<T> Get()
...
}
및
는public class DerivedController : BaseController<Rectangle>
{
public override IEnumerable<Rectangle> Get()
...
}
public class AnotherDerivedController : BaseController<Square>
{
public new IEnumerable<Square> Get()
...
}
/API/사각형은 제대로 호출 IEnumerable<Rectangle> Get()
/API/평방 나에게 오류 줄 것이다 : 나는 public new IEnumerable<Square> Get()
public override IEnumerable<Square> Get()
을 변경하는 경우
Multiple actions were found that match the request:
System.Linq.IEnumerable`1[Square] Get() on type Web.Api.Controllers.AnotherDerivedController
System.Linq.IEnumerable`1[Rectangle] Get() on type Web.Api.Controllers.DerivedController
을 , 나는 후퇴 이후 컴파일 시간 오류가 발생합니다. n 개의 서명이 다릅니다
적절한 코드를 호출하려면 어떻게해야합니까? RegisterRoutes에 각 클래스의 메서드를 명시 적으로 등록해야합니까?
안녕하세요 Aliostad, 변경 사항을 반영하도록 질문을 업데이트했습니다. 나는 아직도 여기에 몇 가지 문제가 있지만, 당신의 제안은 나에게 도움이되었다. 감사. – khaihon