Почему бы не определить интерфейс к классу, который вам нужен в MyRoot.General, а затем предоставить реализацию этого интерфейса в MyRoot.General.Model. Вы, вероятно, уже передаете IMyContext - в зависимости от того, где нужен новый класс, вы можете присоединить его к вашей модели или подключить сервис, который разрешит его для вас.
Предполагая, что это существует:
namespace MyRoot.General {
public interface IMyContext {
/// Some irrelevant stuff here
}
}
почему бы не определить:
namespace MyRoot.General {
public interface IMyOtherThing {
/// Some new stuff here
}
}
и реализовать его внутри MyRoot.General.Model:
namespace MyRoot.General.Model {
public class MyOtherThing : MyRoot.General.IMyOtherThing {
/// Some new stuff here
}
}
а затем передать его с помощью нового свойства в IMyContext
, а затем добавьте новый интерфейс IMyContextEx:
namespace MyRoot.General {
public interface IMyContextEx : IMyContext {
IMyOtherThing MyOtherThing { get; set; }
}
}
Наконец, реализуйте IMyContextEx в том же классе, который реализует IMyContext, и приведите, где необходимо, чтобы получить новое свойство.