簡體   English   中英

找不到相同名稱空間的命名空間

[英]Namespace Not Found for same namespace

我有兩個相同的項目,其中我在一個項目中的同一名稱空間下有兩個類。 在第二個項目中,我添加了對該項目的引用,並在第二個項目中指定了using語句,以使用第一個項目的名稱空間(下面的類)。

問題是它允許我使用1類但不允許我使用第二類。

?????為什么????

這是代碼:

項目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命令中顯示構建錯誤。

您還應該設置構建順序,以便始終在第二個項目之前構建第一個項目。

你說:“我在第一個項目中添加了對第二個項目的引用。”但它應該是另一種方式。 由於您正在使用第二個項目中第一個項目的類,因此需要在第二個項目中添加對第一個項目的引用。

無法重現您獲得的編譯器錯誤,但還有一些其他編譯時問題:

  1. class test沒有無參數構造函數。
  2. FirstClass中的方法RFIDHW沒有指定返回類型。 如果它應該是一個構造函數,那么你忘了重命名它。

為了得到這個錯誤,你得到了某種方式錯誤的引用。 重新檢查您的第二個組件是否具有對第一個組件的反射(反之亦然,如OP中所述)。

除了RFIDHW()和參數之外,我沒有看到使用此代碼的任何問題。 一旦你糾正了這個,你應該能夠運行它。 如果沒有,請檢查您的應用程序,如果您的命名空間是類型名沖突,或者您使用的任何庫與您的類沖突。

我有一個VS17無法找到的類的類似問題(錯誤是引用或程序集丟失),並且它與另一個類在同一名稱空間中。

我認為,我的問題是因為我從GIT中取消了一些變化 ,因為我在兩個不同的地方工作。 我已經將“丟失的”File.cs移動到另一個文件夾並通過.gitignore VS17沒有得到那些信息。 改變。

(不太好)解決方案是使用命令ctrl +創建一個新類 ,然后VS17將找到你的兩個類,然后刪除不需要的一個..

希望沒有人會遇到這個問題......

暫無
暫無

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

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