Я не могу напрямую говорить о ситуации со свойством зависимости, поэтому расскажу об общей проблеме, если это будет полезно.
Вы не можете сделать множественное наследование реализации в C #. Однако вы можете прикрепить интерфейс.
Таким образом, вы можете определить интерфейс:
interface IWhatever
{
...
}
И затем вы можете реализовать функции этого интерфейса в классе следующим образом:
class M : IWhatever
{
}
И теперь вы берете классы, для которых вы хотели бы иметь эту дополнительную функциональность:
class B : MustExtend, IWhatever
{
private M myMImpl = new M();
// implement functions, call to 'myMImpl' for implementation.
}
Это называется «композиция». Это может быть полезно в некоторых обстоятельствах и, как правило, используется недостаточно, я думаю:)