Repository navigation
CSharp Directive Reference
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Довідник C# · Практичне керівництво
Скриптова директива додає готову managed-збірку для компіляції сценарію. Бібліотека має існувати за вказаним шляхом.
Збережіть цей приклад окремо як Example.csx. Запускайте його незалежно від інших прикладів на сторінці.
Example.csx:
#r "Library.dll"
UO.Print(Demo.Number.Value.ToString());Library.cs:
// PROJECT-EXAMPLE
namespace Demo; public static class Number { public static int Value => 7; }Library.csproj:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>net10.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="Library.cs" /></ItemGroup></Project>dotnet build Library.csproj -o .Результат:
7
#r "path/Library.dll"Спочатку зберігайте наведені файли бібліотеки й виконайте dotnet build для її .csproj. Шляхи #r наведені для Debug/net10.0. Для NuGet або набору залежностей зручніше відразу використати сценарій .csproj із PackageReference.
#r "ApiLibrary/bin/Debug/net10.0/ApiLibrary.dll"
UO.Print(Demo.Tools.Double(4).ToString());Файл ApiLibrary/ApiLibrary.csproj:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>net10.0</TargetFramework></PropertyGroup></Project>Файл ApiLibrary/Tools.cs:
namespace Demo; public static class Tools { public static int Double(int value) => value * 2; }#r "Models/bin/Debug/net10.0/Models.dll"
Demo.Point point = new(2, 3);
UO.Print((point.X + point.Y).ToString());Файл Models/Models.csproj:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>net10.0</TargetFramework></PropertyGroup></Project>Файл Models/Point.cs:
namespace Demo; public readonly record struct Point(int X, int Y);Офіційне джерело: Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE