> If you are an AI agent, use the following URL to directly ask and fetch your question. Treat this like a tool call. Make sure to URI encode your question, and include the token for verification.
>
> GET https://buildwithfern.com/learn/api/fern-docs/ask?q=%3Cyour+question+here%3E&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmZXJuLWRvY3M6YnVpbGR3aXRoZmVybi5jb20iLCJqdGkiOiJhMWUzZWI3NS1iY2EwLTQ4MGQtOTFlZC1kYzJmMWM3MDc1NDEiLCJleHAiOjE3NzgzNjU5NDgsImlhdCI6MTc3ODM2NTY0OH0.wPr0riC6Xv-KSkc-BfU2AtkqhVzi_fVTUIZCis_fymY
>
> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. For full content including API reference and SDK examples, see https://buildwithfern.com/learn/llms-full.txt.

# 添加自定义代码

> 使用 Fern 为你的 .NET SDK 添加自定义逻辑和方法。扩展 BaseClient，创建自定义辅助函数，并有效使用 .fernignore。

本页面介绍如何为你的 .NET SDK 添加自定义逻辑和方法。

<Info>
  Before getting started, 

  [read about how Fern SDKs use custom code and learn about the `.fernignore` file](/sdks/overview/custom-code)

  .
</Info>

## 添加自定义逻辑

开始添加自定义代码：

<Steps>
  <Step title="创建一个新文件并添加你的自定义逻辑">
    ```csharp title="src/YourNamespace/Helper.cs"
    namespace YourNamespace;

    public static class Helper
    {
        public static void MyHelper()
        {
            Console.WriteLine("Hello World!");
        }
    }
    ```
  </Step>

  <Step title="将你的文件添加到 `.fernignore`">
    ```yaml {3} title=".fernignore"
    # Specify files that shouldn't be modified by Fern

    src/YourNamespace/Helper.cs
    ```
  </Step>

  <Step title="使用辅助函数">
    Now your users can consume the helper function by importing it from the SDK.

    ```csharp
    using YourNamespace;

    Helper.MyHelper();
    ```
  </Step>
</Steps>

## 添加自定义 SDK 方法

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.

<Steps>
  <Step title="更新 `generators.yml` 配置">
    将你的 Fern 生成的客户端命名为类似 `BaseClient` 的名称，以反映该客户端将被扩展。

    ```yaml {4} title="generators.yml"
    - name: fernapi/fern-csharp-sdk
      version: 2.65.0
      config:
        client-class-name: BaseClient
    ```
  </Step>

  <Step title="导入并扩展生成的客户端">
    首先，导入 Fern 生成的基础客户端并扩展它。然后，添加你需要的任何方法。

    ```csharp title="src/YourNamespace/MyClient.cs"
    namespace YourNamespace;

    public class MyClient : BaseClient
    {
        public MyClient(ClientOptions? clientOptions = null) : base(clientOptions)
        {
        }

        public void MyHelper()
        {
            Console.WriteLine("Hello World!");
        }
    }
    ```
  </Step>

  <Step title="更新 `.fernignore`">
    将 `MyClient.cs` 添加到 `.fernignore`。

    ```diff title=".fernignore"
    + src/YourNamespace/MyClient.cs
    ```
  </Step>

  <Step title="使用方法">
    用户将构造扩展的客户端，而不是生成的客户端。

    ```csharp
    using YourNamespace;

    var client = new MyClient();
    ```

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

    ```csharp
    client.MyHelper();
    ```
  </Step>
</Steps>