# LibTmux.Workspace.WorkspaceFile.WorkspaceFile

- **Module:** LibTmux.Workspace
- **Package:** LibTmux.Workspace
- **Language:** C#
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-dotnet/blob/cf34b255c896d19a97e7d7fabea58609c916012d/src/LibTmux.Workspace/WorkspaceFile.cs#L229
- **Page:** https://libtmux.org/en/csharp/latest/workspace/reference/libtmux-workspace-workspacefile-workspacefile/

```
LibTmux.Workspace.WorkspaceFile.WorkspaceFile(sessionName: string?, startDirectory: string?, options: IReadOnlyDictionary<string, string>?, windows: IReadOnlyList<WorkspaceWindow>?, beforeScript: string?, globalOptions: IReadOnlyDictionary<string, string>?)
```

Initializes a workspace description.

## Parameters

- `sessionName` (`string?`): The session name.
- `startDirectory` (`string?`): The directory its windows start in.
- `options` (`IReadOnlyDictionary<string, string>?`): The session options to set.
- `windows` (`IReadOnlyList<WorkspaceWindow>?`): The windows to create, in order.
- `beforeScript` (`string?`): The host command retained for explicitly enabled execution.
- `globalOptions` (`IReadOnlyDictionary<string, string>?`): The global session options to set before creating the declared windows.

## Raises

- [`ArgumentException`](https://learn.microsoft.com/dotnet/api/system.argumentexception): The host command is blank or contains NUL.
