--- name: write-script-csharp description: MUST use when writing C# scripts. --- ## CLI Commands Place scripts in a folder. After writing, tell the user they can run: - `wmill script generate-metadata` - Generate .script.yaml and .lock files - `wmill sync push` - Deploy to Windmill Do NOT run these commands yourself. Instead, inform the user that they should run them. Use `wmill resource-type list --schema` to discover available resource types. # C# The script must contain a public static `Main` method inside a class: ```csharp public class Script { public static object Main(string name, int count) { return new { Name = name, Count = count }; } } ``` **Important:** - Class name is irrelevant - Method must be `public static` - Return type can be `object` or specific type ## NuGet Packages Add packages using the `#r` directive at the top: ```csharp #r "nuget: Newtonsoft.Json, 13.0.3" #r "nuget: RestSharp, 110.2.0" using Newtonsoft.Json; using RestSharp; public class Script { public static object Main(string url) { var client = new RestClient(url); var request = new RestRequest(); var response = client.Get(request); return JsonConvert.DeserializeObject(response.Content); } } ```