簡體   English   中英

無法從項目中引用名稱空間

[英]Not able to reference namespace from project

我的interfaces子項目中有一些文件夾。 我可以“看到”其中的兩個,但不能看到第三個。 顯然添加了該引用,否則我將無法“查看”或訪問子項目中的任何名稱空間。

有什么想法在這里可能出什么問題嗎?

缺少名稱空間參考

項目Project.Data中的文件ProjectContext.cs需要繼承另一個項目Project.Interfaces中的接口。

Project.Data具有對Project.Interfaces的引用。

該接口位於Project.Interfaces \\ Data \\ IProjectContext.cs中

無論出於何種原因,在Visual Studio提供的自動完成功能中, 數據目錄都不可見。 我無法訪問Project.Interfaces.Data命名空間。

來自Project.Data的 project.json

{
  "version": "1.0.0-*",

  "dependencies": {
"Project.Interfaces": "1.0.0-*",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"NETStandard.Library": "1.6.1",
"System.ComponentModel.Annotations": "4.3.0"
},

"frameworks": {
"netstandard1.6": {
  "imports": "dnxcore50"
}
}
}

ProjectContext.cs

namespace Project.Data
{
public class ProjectContext : DbContext
{
    public ProjectContext(DbContextOptions<ProjectContext> options) : base(options)
    {
        Database.EnsureCreated();
    }

}
}

IProjectContext.cs

namespace Project.Interfaces.Data
{
    interface IProjectContext
    {

    }
}

似乎給人的印象是文件夾結構定義了名稱空間。 實際上,它們完全無關緊要(盡管遵循一個很好的約定)。 檢查丟失的文件夾內的文件,並更改代碼中的名稱空間定義,大概是希望它與您的文件夾結構相匹配。

要尋找的另一件事是類/接口是否是公共的。

c#中的默認訪問修飾符是internal 由於您的IProjectContext接口沒有修飾符,因此假定它是internal ,因此對其他項目不可用。

將該接口公開,您將可以在其他項目中引用該接口。

namespace Project.Interfaces.Data
{
    public interface IProjectContext
    {

    }
}

如果出於API原因希望接口是內部接口,則可以在Project.Interfaces項目中的AssemblyInfo.cs文件中添加InternalsVisibleTo行:

[assembly: InternalsVisibleTo("Project.Data")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM