Как игнорировать свойства Getter и Setter в C # с Roslyn - PullRequest
1 голос
/ 11 апреля 2019

Я перечисляю IMethodSymbols, получая GetMembers () и фильтруя с помощью Linq. Единственное, что я не могу отфильтровать, это методы получения и установки свойств - какие-либо предложения?

Для каждого свойства я также получаю метод get_ [PropertyName] и set_ [PropertyName].

TypeSymbol.GetMembers().Where(s => 
s.Kind == SymbolKind.Method && 
s.DeclaredAccessibility == Accessibility.Public && 
!s.IsImplicitlyDeclared && 
!s.IsVirtual))

Я думал, что это отфильтровывает геттеры и сеттеры ...

Ответы [ 2 ]

1 голос
/ 27 апреля 2019

Вам нужно привести символ к IMethodSymbol, тогда вы можете использовать MethodKind:

member is IMethodSymbol method &&
(method.MethodKind == MethodKind.PropertyGet || method.MethodKind == MethodKind.PropertySet)
0 голосов
/ 11 апреля 2019

Я сейчас использую строковый фильтр как


.Name.StartsWith("get_")

но я надеюсь, что есть лучшее решение.

...