You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Modelina CSharpGenerator生成类时如何添加继承及额外依赖

两个需求均可以通过工具原生能力实现,无需修改工具源码。

为生成类添加继承关系

你期望的public class UserCreated: IEvent格式输出完全支持,有两种常用实现方式:

  • 全局统一继承:编写自定义生成预设,重写类签名渲染逻辑,在工具默认生成的类签名后追加继承声明即可,该方式不会破坏工具自动生成的属性、数据注解、序列化相关逻辑。核心实现参考:
import { CSharpGenerator } from '@asyncapi/modelina';

const eventInheritPreset = {
  class: {
    renderClassSignature({ renderer }) {
      const defaultSignature = renderer.defaultRenderClassSignature();
      return defaultSignature.replace(/(public class \w+)/, '$1 : IEvent');
    }
  }
};

const generator = new CSharpGenerator({
  presets: [eventInheritPreset]
});
  • 按模型指定继承:如果不需要所有生成类都继承IEvent,可以在AsyncAPI文档的对应模型上添加C#专属扩展标记,在预设中读取标记值动态拼接继承关系,即可实现不同类继承不同父类/接口的效果。

最新稳定版本已内置继承配置能力,直接在模型的C#扩展字段中配置要继承的类型即可,无需手动编写字符串替换逻辑,工具会自动处理类签名的拼接。

添加额外依赖项

工具完全支持追加自动生成逻辑以外的额外依赖:

  • 全局公共依赖:如果所有生成文件都需要引入固定命名空间(比如IEvent接口所在的命名空间),可直接在生成器初始化配置中设置默认导入项,工具生成代码时会自动在所有文件头部添加对应的using语句。
  • 单模型专属依赖:可以结合模型上的自定义扩展标记,在预设的文件渲染阶段判断当前模型所需的依赖,按需追加对应的using语句,避免给无相关需求的文件引入多余依赖。

内容的提问来源于stack exchange,提问作者Raajkumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:06:23