[Canonical page](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/project-options/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# ProjectOptions

Options passed to the [`Project`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/project.md>) constructor. Create one with `new ProjectOptions()` and set its properties. Passing `null` to the constructor gives the defaults.

## Declaration

```csharp
public sealed class ProjectOptions : IDeepCloneable<ProjectOptions>
```

The project copies the options when it's created. Changing this object afterwards has no effect on an existing project.

## Constructors

### ProjectOptions()

```csharp
public ProjectOptions()
```

Creates options with every property at its default.

## Properties

### Validation

```csharp
public Validation Validation { get; set; } = Validation.Strict;
```

How the project treats invalid input. Default: [`Validation.Strict`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/validation.md>).

| Value | Effect |
|---|---|
| `Validation.Strict` | Invalid input throws an [`InputException`](<https://docs.dhtmlx.com/planning-engine/net/api/core/errors/input-exception.md>) with the path of the bad field. |
| `Validation.Repair` | Fixable input is repaired, and each fix is reported as a [`Note.Repaired`](<https://docs.dhtmlx.com/planning-engine/net/api/core/results/note.md#repaired>) entry in [`ScheduleResult.Notes`](<https://docs.dhtmlx.com/planning-engine/net/api/core/results/schedule-result.md>). |

See [`Validation`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/validation.md>) for what repair changes.

## Methods

### DeepClone

```csharp
public ProjectOptions DeepClone()
```

Returns a copy that shares no state with this instance.

**Returns** - a new `ProjectOptions` with the same values.

### ToString

```csharp
public override string ToString()
```

Returns a debug dump of the fields, e.g. `ProjectOptions { Validation: Repair }`.

## Example

```csharp
using Plen;

var project = new Project(new ProjectOptions { Validation = Validation.Repair });
```

## Related

- [`Project`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/project.md>) - the constructor that takes these options
- [`Validation`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/validation.md>) - strict or repair validation and what repair changes
- [`InputException`](<https://docs.dhtmlx.com/planning-engine/net/api/core/errors/input-exception.md>) - thrown for invalid input in strict mode
- [Accept messy input](<https://docs.dhtmlx.com/planning-engine/net/how-to/accept-messy-input.md>) - turning on repair mode
