C# classlib
Tidigare har vi enbart skapat körbara konsolprojekt med dotnet new console. Ibland vill vi skapa klassbibliotek som fler projekt kan använda. Då kan vi skapa biblioteksprojekt med dotnet new classlib. Biblioteksprojekten är inte körbara utan används i konsolprojekt.
Skapa ett klassbibliotek
Section titled “Skapa ett klassbibliotek”Vi börjar med att skapa en katalog “classlibPractice” i “dbwebb-kurser/csharp/kmom06” och går ner i den.
Det ser ut så här i terminalen. $HOME motsvarar katalogen som du skapade “dbwebb-kurser” i.
pwd// ger utskriften: $HOME/dbwebb-kurser/csharp/kmom06/classlibPracticeVi skapar ett klassbibliotek med följande kommando:
dotnet new classlib -n MyLibrary
tree -L 2// ger utskriften:// .// ├── MyLibrary// │ ├── Class1.cs// │ ├── MyLibrary.csproj// │ ├── bin// │ └── obj// └── classlibPractice.slnVi byter namn på klassen och filen (Class1.cs) till Calculator och lägger till en metod.
// I MyLibrary/Calculator.csnamespace MyLibrary;
public class Calculator{ public static int Add(int a, int b) { return a + b; }
//public static int Add(int a, int b) => a + b;}Skapa konsolprojekt
Section titled “Skapa konsolprojekt”Nu skapar vi konsolprojektet som ska använda klassbiblioteket MyLibrary.
dotnet new console -n MyApp
tree -L 2// ger utskriften:// .// ├── MyApp// │ ├── MyApp.csproj// │ ├── Program.cs// │ └── obj// ├── MyLibrary// │ ├── Calculator.cs// │ ├── MyLibrary.csproj// │ ├── bin// │ └── obj// └── classlibPractice.slnVi lägger till en referens till klassbiblioteket MyLibrary i konsolprojektet MyApp i terminalen.
cd MyAppdotnet add reference ../MyLibrary/MyLibrary.csprojVi kontrollerar att referensen till klassbiblioteket finns i “MyApp/MyApp.csproj”.
Kör konsolprojektet
Section titled “Kör konsolprojektet”Vi uppdaterar först konsolprojektet med kod som anropar klassbiblioteket.
// I MyApp/MyApp.csprojusing MyLibrary;
var calc = new Calculator();Console.WriteLine($"2 + 3 = {calc.Add(2, 3)}");Då är det dags att testköra konsolprojektet i terminalen:
dotnet run// ger utskriften: 2 + 3 = 5Skapa ett testprojekt som testar klassbiblioteket
Section titled “Skapa ett testprojekt som testar klassbiblioteket”Vi skapar ett testprojekt i katalogen “classlibPractice” med terminalen. Vi lägger också till en referens till klassbiblioteket “MyLibrary”.
dotnet new nunit -n MyLibrary.Testsdotnet add MyLibrary.Tests/MyLibrary.Tests.csproj reference MyLibrary/MyLibrary.csprojtree -L 1// ger utskriften:// .// ├── MyApp// ├── MyLibrary// ├── MyLibrary.Tests// └── classlibPractice.slnLägg till ett testfall
Section titled “Lägg till ett testfall”Vi uppdaterar “MyLibrary.Tests/UnitTest1.cs:
using NUnit.Framework;using MyLibrary;
namespace MyLibrary.Tests;
public class CalculatorTests{ [Test] public void Add_ReturnsCorrectSum() { Assert.That(Calculator.Add(6, 4), Is.EqualTo(10)); }}Vi kör testfallet med dotnet test.
Sammanfattning
Section titled “Sammanfattning”Då har vi tittat på hur vi kan göra ett klassbibliotek (classlib) som vi kan använda i ett konsolprojekt (console).
Om du vill titta på koden i sin helhet och ladda ner den så kör du task download-code -- kmom06/classlibPractice