[英]Namespace Not Found for same namespace
我有兩個相同的項目,其中我在一個項目中的同一名稱空間下有兩個類。 在第二個項目中,我添加了對該項目的引用,並在第二個項目中指定了using語句,以使用第一個項目的名稱空間(下面的類)。
問題是它允許我使用1類但不允許我使用第二類。
?????為什么????
這是代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LibraryProject
{
public class test
{
public static string ErrorMessage = "";
public test(string code)
{
ErrorMessage = code;
}
}
public class FirstClass
{
public static string ErrorMessage = "";
public RFIDHW(string code)
{
ErrorMessage = code;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LibraryProject;
namespace Engine
{
/*
* Connect engine logic with back end DB and other library
*/
public class BackEnd
{
//Return tag list from the connected reader as List<Tag>
public string GetMessage()
{
FirstClass fc = new FirstClass(); //OK no problem
test tt = new test(); // Error message
}//End of GatTagList method
}//End of BackEnd class
}//End of namespace
找不到類型或命名空間名稱“test”(您是否缺少using指令或程序集引用?)。
我在第一個項目中添加了對第二個項目的引用。
我在新解決方案中嘗試了相同的機制,只需采用那段代碼即可。 (不幸的是,我無法通過整個項目移動,所以必須解決這個問題。)
請幫忙
非常感謝提前
不是我確定這是錯誤的原因,但我注意到的第一件事是你的test
構造函數要求一個參數:
public test(string code)
{
ErrorMessage = code;
}
但是你在這里調用默認(無參數)構造函數:
test tt = new test();
這不起作用,因為您創建了一個構造函數,因此默認構造函數不再可用。 您需要傳入一些字符串,以便調用您聲明的構造函數( test(string)
)。
嘗試單獨構建每個程序集,有時會因構建順序而在build all命令中顯示構建錯誤。
您還應該設置構建順序,以便始終在第二個項目之前構建第一個項目。
你說:“我在第一個項目中添加了對第二個項目的引用。”但它應該是另一種方式。 由於您正在使用第二個項目中第一個項目的類,因此需要在第二個項目中添加對第一個項目的引用。
無法重現您獲得的編譯器錯誤,但還有一些其他編譯時問題:
為了得到這個錯誤,你得到了某種方式錯誤的引用。 重新檢查您的第二個組件是否具有對第一個組件的反射(反之亦然,如OP中所述)。
除了RFIDHW()和參數之外,我沒有看到使用此代碼的任何問題。 一旦你糾正了這個,你應該能夠運行它。 如果沒有,請檢查您的應用程序,如果您的命名空間是類型名沖突,或者您使用的任何庫與您的類沖突。
我有一個VS17無法找到的類的類似問題(錯誤是引用或程序集丟失),並且它與另一個類在同一名稱空間中。
我認為,我的問題是因為我從GIT中取消了一些變化 ,因為我在兩個不同的地方工作。 我已經將“丟失的”File.cs移動到另一個文件夾並通過.gitignore VS17沒有得到那些信息。 改變。
(不太好)解決方案是使用命令ctrl +創建一個新類。 ,然后VS17將找到你的兩個類,然后刪除不需要的一個..
希望沒有人會遇到這個問題......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.