Browse Source

Add event backing field analyzer

pull/1030/head
Siegfried Pammer 7 years ago
parent
commit
719e3e2881
  1. 14
      ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs

14
ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs

@ -48,6 +48,8 @@ namespace ICSharpCode.ILSpy.Analyzers.TreeNodes @@ -48,6 +48,8 @@ namespace ICSharpCode.ILSpy.Analyzers.TreeNodes
this.Children.Add(new AnalyzedAccessorTreeNode(analyzedEvent.AddAccessor, "add"));
if (analyzedEvent.CanRemove)
this.Children.Add(new AnalyzedAccessorTreeNode(analyzedEvent.RemoveAccessor, "remove"));
if (TryFindBackingField(analyzedEvent, out var backingField))
this.Children.Add(new AnalyzedFieldTreeNode(backingField));
//foreach (var accessor in analyzedEvent.OtherMethods)
// this.Children.Add(new AnalyzedAccessorTreeNode(accessor, null));
@ -59,5 +61,17 @@ namespace ICSharpCode.ILSpy.Analyzers.TreeNodes @@ -59,5 +61,17 @@ namespace ICSharpCode.ILSpy.Analyzers.TreeNodes
}
}
}
bool TryFindBackingField(IEvent analyzedEvent, out IField backingField)
{
backingField = null;
foreach (var field in analyzedEvent.DeclaringTypeDefinition.GetFields(options: GetMemberOptions.IgnoreInheritedMembers)) {
if (field.Name == analyzedEvent.Name && field.Accessibility == Accessibility.Private) {
backingField = field;
return true;
}
}
return false;
}
}
}

Loading…
Cancel
Save