diff --git a/ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs b/ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs index 021b76abf..433cc2862 100644 --- a/ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs +++ b/ILSpy/Analyzers/TreeNodes/AnalyzedEventTreeNode.cs @@ -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 } } } + + 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; + } } }