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

.NET 6.0中如何在OData元数据XML的枚举成员名中添加空格

解决方法

要修改OData元数据中枚举成员的名称,需要手动覆盖OData约定生成的枚举成员,通过EnumTypeConfiguration指定每个成员的名称为DescriptionAttribute中的值。

修改GetEdmModel方法如下:

static IEdmModel GetEdmModel()
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

    builder.EntitySet<Project.Car>("Car");

    // 获取枚举类型配置对象
    var enumConfig = builder.EnumType<MyEnum>();

    // 遍历枚举所有公共静态字段
    foreach (var field in typeof(MyEnum).GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static))
    {
        // 获取字段上的DescriptionAttribute
        var descAttr = field.GetCustomAttribute<DescriptionAttribute>();
        if (descAttr != null)
        {
            // 移除自动生成的成员,添加自定义名称的成员
            enumConfig.RemoveMember(field.Name);
            enumConfig.Member((MyEnum)field.GetValue(null)).Name = descAttr.Description;
        }
    }

    return MetadataMapper(builder.GetEdmModel());
}

说明

  1. 通过builder.EnumType<MyEnum>()获取枚举的配置实例EnumTypeConfiguration
  2. 遍历枚举的所有静态公共字段,提取每个字段的DescriptionAttribute
  3. 若存在描述属性,先移除OData自动生成的成员,再添加以描述文本作为名称的新成员
  4. 生成的元数据中,枚举成员的Name字段将显示带空格的描述内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:34:57