По сути, вы не можете, и причина в том, что MVC попытается выполнить new AbstractBaseConfig()
как часть процесса привязки данных (который анализирует URL-адрес или сообщение формы и помещает результаты в конкретный объект).И по определению, выполнение new AbstractBaseConfig()
невозможно для абстрактного класса.
Это также имеет смысл по другим причинам, я объясню почему.
Вы, кажется, ожидаетечто MVC может определить класс из параметров, передаваемых в .Это не так, на самом деле все наоборот: метод действия должен указать точный класс , а затем Binder создаст экземпляр этого точного класса и попытается связать его свойства.
Предположим, у вас было это:
public abstract class Thing { public int ID { get;set; } }
public class NamedThing : Thing { public string Name { get;set; } }
public class OtherThing : Thing { public string Name { get;set; } }
и предположим, что ему будет разрешено использовать:
public IActionResult Register(Thing thing)
, что вы ожидаете получить в thing
после привязки данных: aThing
объект только с установленным ID
?Или один из других типов объектов с установленным Name
, но как MVC сможет узнать, какой класс вы имели в виду?
Так что по всем этим причинам это невозможно.