Skip to navigation

Adding custom code

View as Markdown
Enterprise feature

This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.

This page covers how to add custom logic and methods to your .NET SDK.

Adding custom logic

To get started adding custom code:

These steps cover adding a new custom file to the SDK. To preserve line-level edits to a generated file, use Replay instead.
1

Create a new file and add your custom logic

src/YourNamespace/Helper.cs
namespace YourNamespace;
public static class Helper
{
public static void MyHelper()
{
Console.WriteLine("Hello World!");
}
}
2

Add your file to .fernignore

.fernignore
# Specify files that shouldn't be modified by Fern
src/YourNamespace/Helper.cs
3

Consume the helper

Now your users can consume the helper function by importing it from the SDK.

using YourNamespace;
Helper.MyHelper();

Adding custom SDK methods

Fern also allows you to add custom methods to the SDK itself (e.g. client.my_method() ) by inheriting the Fern generated client and then extending it.

1

Update generators.yml configuration

Name your Fern-generated client something like BaseClient to reflect that this client will be extended.

generators.yml
- name: fern-csharp-sdk
version: 2.83.3
config:
client-class-name: BaseClient
2

Import and extend the generated client

First, import the Fern generated base client and extend it. Then, add whatever methods you want.

src/YourNamespace/MyClient.cs
namespace YourNamespace;
public class MyClient : BaseClient
{
public MyClient(ClientOptions? clientOptions = null) : base(clientOptions)
{
}
public void MyHelper()
{
Console.WriteLine("Hello World!");
}
}
3

Update .fernignore

Add the MyClient.cs to .fernignore.

.fernignore
+ src/YourNamespace/MyClient.cs
4

Consume the method

Instead of constructing the generated client, your users will want to construct the extended client.

using YourNamespace;
var client = new MyClient();

Now your users can consume the helper function by importing it from the SDK.

client.MyHelper();