我有组件的层次结构如下:如何添加属性到现有的界面?
MyRoot
MyRoot.General
MyRoot.General.Model
MyRoot.General.MyApp
每个组件应引用来自MyApp的下降到MyRoot。换句话说,MyRoot不应该引用任何这些程序集。 MyApp可以引用所有这些。
MyRoot.General包含一个名为IMyContext的接口。在Model和MyApp命名空间中使用IMyContext在应用程序实例的生命周期中提供实例数据。问题是我需要将另一个属性添加到IMyContext,以便模型命名空间中的类实例可以通过Model和MyApp命名空间(就像IMyContext实例一样)。但是,然后MyRoot.General将不得不引用MyRoot.General.Model程序集。我可以在Model中为这个类创建一个单例,但是我基本上有两个上下文来跟上 - IMyContext和MyRoot.General.Model.MySingleton。
有没有更好的方法来做到这一点?我想这可能是某种类型的作品。
此外,现有应用程序正在使用MyRoot.General.IMyContext。如果将新属性添加到IMyContext,将会导致重构和风险过高。
MyApp已经在使用IMyContext。所以,如果我创建一个IMyContextTwo ....会有很多重构。也许我没有跟着。 – 4thSpace
查看编辑我的意思 –
您说的部分“,然后在IMyContext上使用新属性传递它”将会对现有应用程序造成很大打击。 – 4thSpace