> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 2.60.0

**`(feat):`** Add opt-in `enable-inline-types` configuration option. When enabled, types
marked as inline in the API definition are generated as nested classes inside
a static `Types` class on the parent type, instead of as separate top-level files.

For example, given a `User` type with an inline `Address` property, the
generated C# looks like:

```csharp
public record User
{
    public required Types.Address Address { get; set; }

    public static class Types
    {
        public record Address
        {
            public required string Street { get; set; }
            public required string City { get; set; }
        }
    }
}
```

All type shapes are supported: objects, enums, discriminated unions, and
undiscriminated unions. Recursive nesting works
(e.g. `User.Types.Address.Types.Coordinate`), and collision avoidance
renames the nested class to `InnerTypes` if the parent already has a
`Types` property.

```yaml
generators:
  - name: fernapi/fern-csharp-sdk
    config:
      enable-inline-types: true
```

## 2.31.1

**`(fix):`** Fix CS0426 compilation error when the client class name matches a namespace
root segment (e.g., class `Candid` in namespace `Candid.Net`). The C# compiler
previously resolved `Candid.Net` as looking for a `Net` member on the `Candid`
type instead of the `Candid.Net` namespace. The generator now uses `global::`
prefixes in both inline references and `using` directives to disambiguate.