我有組件的層次結構如下:如何添加屬性到現有的界面?
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