我有以下程序集层次结构:
每个程序集都应该从MyApp到MyRoot进行引用。换句话说,MyRoot不应引用这些程序集中的任何一个。MyApp可以引用它们所有。
MyRoot.General包括一个名为IMyContext的接口。IMyContext在Model和MyApp命名空间中用于在应用程序实例的生命周期内提供实例数据。问题是我需要向IMyContext添加另一个属性,以便Model命名空间中的类实例在整个Model和MyApp命名空间中都可用(就像IMyContext实例一样)。但是,这样一来,MyRoot.General就必须引用MyRoot.General.Model程序集。我可以在Model中为这个类创建一个单例,但那么我基本上就有了两个要跟踪的上下文-IMyContext和MyRoot.General.Model.MySingleton。
有更好的方法吗?我想这可能是某种类型的组合。
此外,现有应用程序正在使用MyRoot.General.IMyContext。添加一个新属性到IMyContext将需要进行大量重构并带来风险。
MyRoot
MyRoot.General
MyRoot.General.Model
MyRoot.General.MyApp
每个程序集都应该从MyApp到MyRoot进行引用。换句话说,MyRoot不应引用这些程序集中的任何一个。MyApp可以引用它们所有。
MyRoot.General包括一个名为IMyContext的接口。IMyContext在Model和MyApp命名空间中用于在应用程序实例的生命周期内提供实例数据。问题是我需要向IMyContext添加另一个属性,以便Model命名空间中的类实例在整个Model和MyApp命名空间中都可用(就像IMyContext实例一样)。但是,这样一来,MyRoot.General就必须引用MyRoot.General.Model程序集。我可以在Model中为这个类创建一个单例,但那么我基本上就有了两个要跟踪的上下文-IMyContext和MyRoot.General.Model.MySingleton。
有更好的方法吗?我想这可能是某种类型的组合。
此外,现有应用程序正在使用MyRoot.General.IMyContext。添加一个新属性到IMyContext将需要进行大量重构并带来风险。
IMyAdaptor
包含在同一个库中。 - IAbstract