[英]Calling class from another project
我有兩個項目, BasicCalculator
和BasicCalculator.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.