1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/snikeguo-cs-script

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 06:42 38e8eaf

CS-Script

CS-Script — это система скриптов на основе CLR, которая использует C# в качестве языка программирования, совместимого с ECMA.

Это одно из самых зрелых решений для написания скриптов на C#. Оно стало доступно общественности в 2004 году, всего через два года после первого выпуска .NET, и стало первой комплексной платформой для создания скриптов для .NET.

CS-Script поддерживает как размещённое, так и автономное выполнение. Это позволяет использовать движок сценариев в качестве альтернативы PowerShell на чистом C#, а также расширять приложения .NET с помощью скриптов C#, выполняемых во время выполнения размещённым движком сценариев.

С помощью CS-Script можно легко переключать базовую технологию компиляции, не затрагивая кодовую базу. В настоящее время поддерживаются компиляторы Mono, Roslyn и CodeDOM.

CS-Script также предлагает комплексную интеграцию с наиболее распространёнными инструментами разработки:

  • Visual Studio;
  • VSCode;
  • Sublime Text 3;
  • Notepad++.

Он может работать на Win, Linux и Mac и совместим с .NET, Mono и .NET Core.

За долгую историю CS-Script его загрузили только через менеджер плагинов Notepad++ x86 более раз (см. статистику).

Статистика не включает загрузки x64 и загрузки после того, как Notepad++ прекратил поставлять редактор с включённым менеджером плагинов x86.

Для получения подробной информации о CS-Script перейдите в документацию проекта.


Ниже приведён простой пример кода, чтобы дать вам представление о продукте:

Выполнение скрипта из оболочки

Обновление тегов медиафайлов. Обратите внимание, что скрипт использует необязательный бесклассовый макет.

Файл скрипта: mp4_retag.cs

//css_nuget taglib
using System;
using System.IO;

string source = @"\\media-server\tv_shows\Get Smart\Season1";

void main()
{
    foreach (string file in Directory.GetFiles(source, "*.mp4"))
    {
        string episode_name = Path.GetFileNameWithoutExtension(file);

        var mp4 = TagLib.File.Create(file);
        mp4.Tag.Title = episode_name;
        mp4.Save();

        Console.WriteLine(episode_name);
    }
}

Выполните файл сценария непосредственно в командной строке без сборки исполняемой сборки:

C:\Temp>cscs mp4_retag.cs

Размещение движка сценариев

dynamic script = CSScript.LoadCode(
                           @"using System.Windows.Forms;
                             public class Script
                             {
                                 public void SayHello(string greeting)
                                 {
                                     MessageBox.Show(""Greeting: "" + greeting);
                                 }
                             }")
                             .CreateObject("*");
script.SayHello("Hello World!");
//-----------------
var product = CSScript.CreateFunc<int>(@"int Product(int a, int b)
                                         {
                                             return a * b;
``` ```
int result = product(3, 4);
//-----------------
var SayHello = CSScript.LoadMethod(
                        @"using System.Windows.Forms;
                          public static void SayHello(string greeting)
                          {
                              MessageBoxSayHello(greeting);
                              ConsoleSayHello(greeting);
                          }
                          static void MessageBoxSayHello(string greeting)
                          {
                              MessageBox.Show(greeting);
                          }
                          static void ConsoleSayHello(string greeting)
                          {
                              Console.WriteLine(greeting)
                          }")
                         .GetStaticMethod("*.SayHello" , ""); 
SayHello("Hello again!");

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/snikeguo-cs-script.git
git@api.gitlife.ru:oschina-mirror/snikeguo-cs-script.git
oschina-mirror
snikeguo-cs-script
snikeguo-cs-script
master