c# - 如何使用 Roslyn 在 C# 中忽略 Property Getter 和 Setter
问题描述
我通过获取 GetMembers() 并使用 Linq 过滤来枚举 IMethodSymbols。唯一我无法过滤的是属性 getter 和 setter 方法 - 有什么建议吗?
对于每个属性,我还得到一个 get_[PropertyName] 和 set_[PropertyName] 方法。
TypeSymbol.GetMembers().Where(s =>
s.Kind == SymbolKind.Method &&
s.DeclaredAccessibility == Accessibility.Public &&
!s.IsImplicitlyDeclared &&
!s.IsVirtual))
我认为这会过滤掉吸气剂和二传手......
解决方案
您需要将符号转换为IMethodSymbol
,然后您可以使用MethodKind
:
member is IMethodSymbol method &&
(method.MethodKind == MethodKind.PropertyGet || method.MethodKind == MethodKind.PropertySet)
推荐阅读
- c# - 无法使用客户端凭据获取 facebook 访问令牌,但它适用于我的凭据
- elasticsearch - match_mapping_type,仅针对对象数组
- rjags - 使用 rjags 进行贝叶斯模型选择
- android - 如何在 Android Studio 中调试字段
- c# - c# - SendPingAsync 一直超时失败
- ios - IOS Swift:UIAccessibilitySpeechAttributeIPANotation
- java - Spring OAuth 1.0 支持:如何验证 OAuth 请求?
- jsf - 如何在 JSF 中添加标题
- c# - 基础提供程序在打开时失败。连接没有关闭。连接的当前状态是正在连接。问题
- python-3.x - 如何在字符串之后获取几个字符以便能够识别字符串是在头标签或列表项中?