[英]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.