【发布时间】:2020-06-26 08:31:45
【问题描述】:
我有一个具有以下方法的 DataSourcesController:
public abstract ActionResult<IEnumerable<DataSource>> Add(DataSourceDTO dataSourceDTO);
public abstract ActionResult<IEnumerable<DataSource>> Edit(DataSourceDTO dataSourceDTO);
我有一个覆盖这些方法的 SQLDataSourcesController:
[HttpPost]
public override ActionResult<IEnumerable<DataSource>> Add(SQLDataSourceDTO sqlDataSourceDTO)
{ //code is in here }
[HttpPut]
public override ActionResult<IEnumerable<DataSource>> Edit(SQLDataSourceDTO sqlDataSourceDTO)
{ //code is in here }
但是,由于 SQLDataSourceDTO 而不是 DataSourceDTO,我收到以下错误:
SQLDataSourcesController.Add(SQLDataSourceDTO': no suitable method found to override
SQLDataSourcesController.Edit(SQLDataSourceDTO': no suitable method found to override
My SQLDataSourceDTO 是 DataSourceDTO 的子类:
public abstract class DataSourceDTO
{ //code is in here }
public class SQLDataSourceDTO : DataSourceDTO
{ //code is in here }
感谢任何有关如何解决此问题的帮助!
【问题讨论】:
-
您如何使用控制器?你在哪里得到这个错误?请分享剩下的代码
-
@PavelAnikhouski 控制器是 APIControllers。我在控制器类中得到错误。但是,如果我将该参数类型更改为 DataSource 而不是 SQLDataSource 错误就会消失,但我认为我写的内容应该可以工作,因为我传入了它期望的基类的子类..
标签: c# .net inheritance subclass superclass