Как сделать приложение. NET Core на MacOS скриптовым (с помощью Applescript)? - PullRequest
0 голосов
/ 13 марта 2020

Прямо к вопросу: Как сделать простое. NET Базовое консольное приложение с возможностью написания сценариев с помощью Applescript?

Ради эксперимента давайте предположим, что мое приложение выглядит так ниже:

using System;
using System.Threading;
using System.Threading.Tasks;

namespace ScriptableCsharpApp
{
    class Program
    {
        public static CancellationTokenSource CancellationTokenSource { get; set; } 
            = new CancellationTokenSource();
        public static int StaticCounter { get; set; } = 0;
        static void Main(string[] args)
        {
            Console.WriteLine("Running!");

            AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;

            CancellationTokenSource.Token.WaitHandle.WaitOne();

            Console.WriteLine("Shutting Down!");
        }

        private static Response GetFullResponse()
        {
            return new Response()
            {
                Counter = StaticCounter++,
                Message = "Hello from C#!"
            };
        }

        private static string GetMessage()
        {
            StaticCounter++;
            return "Hello from C#!";
        }

        private static void CurrentDomain_ProcessExit(object sender, EventArgs e)
        {
            CancellationTokenSource.Cancel();
        }
    }

    public class Response
    {
        public int Counter { get; set; }
        public string Message { get; set; }
    }
}

Уровень 1: Как заставить следующий скрипт возвращать сообщение из GetMessage (), пока приложение работает:

tell application "ScriptableCsharpApp"
 set message to get message 
 return message 
end tell 

Уровень 2: Как мне заставить следующий скрипт возвращать свойство Message результата GetFullResponse во время работы приложения:

tell application "ScriptableCsharpApp"
 set response to get full response
 set message to message of response
 return message 
end tell 

EDIT В комментарии утверждается, что информации недостаточно. Я в замешательстве, но хорошо, давайте будем ОЧЕНЬ подробны:

  • на Windows, установка. NET Core 3.x SDK
  • , откройте Visual Studio 2019 на Windows
  • Файл -> Создать -> Проект ->. NET Базовое консольное приложение (C#)
  • скопировать и вставить код сверху через Program.cs
  • Ctrl +. для устранения пропущенных ссылок (следует добавить пакет NuGet для потоков)
  • , заархивировать папку решения, отправить ее в Ma c, извлечь куда-нибудь
  • в Ma c, install. NET Core 3.x runtime
  • в Terminal.app, перейдите в папку решения и запустите «do tnet ScriptableCsharpApp»

Теперь у вас есть приложение без окон это работает до тех пор, пока вы (x) не выйдете.

Задача состоит в том, чтобы объяснить, какие изменения кода требуются, чтобы я мог открыть редактор AppleScript, создать новый AppleScript, скопировать и вставить скрипт, упомянутый выше, и запустить его чтобы получить желаемые результаты.

Достаточно подробно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...