Files

57 lines
1.2 KiB
Markdown

---
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);
}
}
```