Прямо к вопросу: Как сделать простое. 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, скопировать и вставить скрипт, упомянутый выше, и запустить его чтобы получить желаемые результаты.
Достаточно подробно?