Если основное ограничение вызывает конструктор по умолчанию для стороннего класса, разве вы не можете сделать что-то подобное?
public class InheritedClass : ThirdPartyClass
{
private IMyInterface _myInterface;
// the default ctr of the 3rd party class is still being called
public InheritedClass(IMyInterface myInterface, string arg) : base(arg)
{
_myInterface = myInterface;
}
}
В случае, если вы действительно хотите сказать, что у вашего собственного унаследованного класса есть определенный конструктор, которыйВы должны использовать, тогда почему бы не сделать что-то подобное?
public class InheritedClass : ThirdPartyClass
{
// Constructor that has to be used
public InheritedClass(string arg) : base(arg)
{
}
// Ctr with DI that also calls the required default ctr - could be used instead..
public InheritedClass(IMyInterface myInterface, string arg) : this(arg)
{
_myInterface = myInterface;
}
}
Если ни один из них не применим к вашему случаю, то вам нужна концепция инъекции метода, примером может быть это