簡體   English   中英

從另一個項目調用類

[英]Calling class from another project

我有兩個項目, BasicCalculatorBasicCalculator.Test.Unit 我想使用BasicCalculator項目中的某些函數測試類。 我創建了一個名為BasicCalculator.Test.Unit的單元測試文件,並在該項目中添加了一個新的引用 ( BasicCalculator )。

using System;
using BasicCalculator;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace BasicCalculator.Test.Unit
{
    [TestClass]
    public class CalculatorEngineTest
    {
        private readonly CalculatorEngine _calculatorEngine = new CalculatorEngine();
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
}

但是,每當我輸入private readonly CalculatorEngine _calculatorEngine = new CalculatorEngine(); 它顯示CalculatorEngine的錯誤,它是 BasicCalculator 項目中的一個類。

它說:

class BasicCalculator.CalculatorEngine

BasicCalculator - Available
BasicCalculator.Test.Unit - Not Available

You can use the navigation bar to switch context.

The type or namespace 'CalculatorEngine' could not be found (are you missing a using directive or an assembly reference?)

如果我只需要在調用 BasicCalculator 項目的 BasicCalculator.Test.Unit 項目中添加一個引用,我不確定為什么會發生這種情況。

添加信息

這是我試圖在 BasicCalculator.Test.Unit 中訪問的類

using System;
using System.Collections.Generic;
using System.Text;

namespace BasicCalculator
{
    public class CalculatorEngine
    {
        public double Calculate(string argOperation, double argFirstNumber, double argSecondNumber)
        {


        }
    }
}

解決方案資源管理器視圖

錯誤列表

簡單地將項目添加為引用不會向代碼中的所有類公開項目的公共成員。 您需要using語句告訴 IDE 您要鏈接項目並使用其類:

using BasicCalculator;

查看編輯后的問題,似乎CalculatorEngine沒有訪問修飾符,這意味着它具有保護可見性。 BasicCalculator項目之外的類將無法訪問它。 您還需要將其公開:

public class CalculatorEngine

編輯:更新問題中的錯誤列表顯示了一個錯誤:

項目“..\\BasicCalculator.csproj”針對“netcoreapp3.1”。 它不能被以“.NETFramework,Version=v4.7.2”為目標的項目引用

此錯誤顯然會阻止BasicCalculator引用在您的測試項目中解析。 您需要在項目設置中的一個或另一個中更改框架目標,以便它們匹配。 或者,為其他可能的解決方案研究此錯誤 - 是一個相關的 SO 問題。

class CalculatorEngine應該是public class CalculatorEngine以將其公開給其聲明的項目之外的調用者

您還應該using BasicCalculator;添加using BasicCalculator; 正如@klaycon 在他的回答中所說

暫無
暫無

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

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