in src/lib/Microsoft.Fx.Portability.Cci/TypeExtensions.cs [541:575]
public static AccessorType GetAccessorType(this IMethodDefinition methodDefinition)
{
if (!methodDefinition.IsSpecialName)
{
return AccessorType.None;
}
foreach (var p in methodDefinition.ContainingTypeDefinition.Properties)
{
if (p.Getter != null && p.Getter.ResolvedMethod.InternedKey == methodDefinition.InternedKey)
{
return AccessorType.PropertyGetter;
}
if (p.Setter != null && p.Setter.ResolvedMethod.InternedKey == methodDefinition.InternedKey)
{
return AccessorType.PropertySetter;
}
}
foreach (var e in methodDefinition.ContainingTypeDefinition.Events)
{
if (e.Adder != null && e.Adder.ResolvedMethod.InternedKey == methodDefinition.InternedKey)
{
return AccessorType.EventAdder;
}
if (e.Remover != null && e.Remover.ResolvedMethod.InternedKey == methodDefinition.InternedKey)
{
return AccessorType.EventRemover;
}
}
return AccessorType.None;
}