场景:ProjectA引用ProjectB,ProjectB引用ProjectC
我在 ProjectC 中定义了一个接口
namespace Cmp.Product.Family.Configuration.Container
{
public interface IComponent
{
// a couple of methods
}
}
在 ProjectB(ProjectB 取决于 ProjectC)中,我这样做:
using Cmp.Product.Family.Configuration.Container;
namespace Cmp.Product.Family.UI
{
public interface IPublicComponent : IComponent
{
}
}
到目前为止,一切都很好。但是问题是 ProjectA 无法编译。编译器抱怨说
Cmp.Product.Family.Configuration.Container.IComponent 未定义。添加对 ProjectC 的引用。
我不明白为什么我需要添加对 ProjectC 的引用。我仍然没有使用IPublicComponent
ProjectA 中的。
我无法在较小的复制品上重现此问题。有没有办法从 C# 编译器获得详细的输出?
提示:问题出现在 ProjectA 中的类是一个嵌套命名空间 ( namespace Cmp.Product.Family.UI.Settings
)。如果我更改IPublicComponent
.
编辑 :
如果我将包含 IPublicComponent 的名称从:
Cmp.Product.Family.UI
至 :
Cmp.Product.Family.SomethingElse
这有帮助。知道 ProjectA 中问题所在的类是此命名空间中的容器:
Cmp.Product.Family.UI.Settings