无法访问来自单独程序集的文件?

我的解决方案中有两个项目。一个代表主项目,另一个代表第一个项目的名称,但在末尾添加“ .API”,充当接口的程序集。


由于我将接口用于特定的类,因此我访问该接口而不是实际的具体类,所以当我要从主程序集中访问主程序集中的文件中的文件时,这会带来问题,这是因为我需要在接口文件中提及它。


否则,将无法访问它,因为在此示例中,接口文件是我们的类。


这是一个代码示例...


namespace App.Classes

{

    public class User : IUser 

    {

        public SomeType SomeType { get; set; }

    }

}


namespace App.Classes

{

    public enum SomeType

    {

        SpecialType,

        GoldType,

        SilverType,

        Other

    }

}


namespace App.API

{

    public interface IUser

    {

        public SomeType SomeType { get; set; }

    }

}

我收到的错误是the type or namespace name 'SomeType' could not be found。


尝试添加 using App到接口文件时,我收到一条错误消息,告诉我命名空间不存在。


主程序集名称:App

API程序集名称:App.API


慕桂英546537
浏览 137回答 1
1回答

千万里不及你

如果我正确理解你,您App.API已从主应用程序(App)引用了API ()。然后,您尝试SomeType在实际位于()中的API中调用/引用App。基本上,如果可以的话,这称为的循环引用。净不允许。此外找不到类型或名称空间名称“ SomeType”此错误是完全适当的,因为该项目没有对的引用(甚至检查您的API项目)。我知道它不存在,因为它无法完成,.Net不会让您。Ergo通函参考App.APIApp你需要作出共同的东西,共同的,即如果你的API需要了解 SomeType它必须被放置在您的API组件(或者更常见的组件都App和App.API可以参考)。简单的解决方案是SomeType放回App.API项目(而不仅仅是名称空间)中namespace App.API.Enums{    public enum SomeType    {        SpecialType,        GoldType,        SilverType,        Other    }}或创建第三个程序集并从App和App.Api项目中引用它
打开App,查看更多内容
随时随地看视频慕课网APP