我有一个具有以下方法的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
但是我的SQLDataSourceDTO是DataSourceDTO的子类:
public abstract class DataSourceDTO
{ //code is in here }
public class SQLDataSourceDTO : DataSourceDTO
{ //code is in here }
感谢您提供有关如何解决此问题的帮助!
您不能覆盖具有派生类型作为参数的方法,因为签名不匹配。为了覆盖,签名应该完全匹配。