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

VB.NET枚举调用Description属性报错System.MissingMemberException排查

可能的触发原因
  • 扩展方法丢失或不可访问:你大概率是通过自定义扩展方法来获取Description特性值的(VB.NET原生枚举没有Description成员)。如果扩展方法所在的类被删除、修改了访问修饰符(比如从Public改成Friend),或者使用枚举的代码没有导入扩展方法所在的命名空间,就会触发这个错误。

  • 特性引用或定义变更:

    • 意外移除了对System.ComponentModel程序集的引用,导致DescriptionAttribute无法被识别;
    • 枚举的Description特性被误删、拼写错误(比如写成DesciptionAttribute),或者特性的参数被清空;
    • 枚举本身的访问修饰符被修改(比如从Public改为Internal),导致遍历代码无法正常访问枚举成员的特性。
  • .NET版本或编译环境变更:如果近期升级了.NET框架(比如从.NET Framework切换到.NET Core/.NET 6+),可能出现以下情况:

    • .NET Core/.NET 5+中需要手动引用System.ComponentModel.Primitives NuGet包才能使用DescriptionAttribute;
    • 旧的扩展方法依赖的.NET Framework特定API在新环境中失效,导致无法获取特性值。
  • 程序集加载冲突:运行时加载了旧版本的程序集(比如GAC中的旧版本、部署时没有替换最新的dll),旧程序集中不存在对应的扩展方法或特性定义,从而触发找不到成员的错误。

  • 反射逻辑错误:如果是通过反射获取特性值(比如GetType(e).GetField(e.ToString()).GetCustomAttribute(Of DescriptionAttribute)()),近期修改反射代码时可能出现逻辑错误,比如字段名拼写错误、获取特性的方式不正确,导致无法找到特性进而抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:02:10