From a564ebbd37f6c74b7188d0d724dbbacd995913d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Tue, 29 Nov 2011 09:01:48 +0100 Subject: [PATCH] Added easy to access enumerables for various member types. --- .../TypeSystem/ITypeDefinition.cs | 5 ++++ .../DefaultUnresolvedTypeDefinition.cs | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs b/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs index c344b9ebfc..156850225f 100644 --- a/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs +++ b/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs @@ -36,6 +36,11 @@ namespace ICSharpCode.NRefactory.TypeSystem IList NestedTypes { get; } IList Members { get; } + IEnumerable Methods { get; } + IEnumerable Properties { get; } + IEnumerable Fields { get; } + IEnumerable Events { get; } + /// /// Gets whether the type definition contains extension methods. /// Returns null when the type definition needs to be resolved in order to determine whether diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultUnresolvedTypeDefinition.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultUnresolvedTypeDefinition.cs index 75396ee25e..ffd05d62cc 100644 --- a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultUnresolvedTypeDefinition.cs +++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultUnresolvedTypeDefinition.cs @@ -17,6 +17,7 @@ // DEALINGS IN THE SOFTWARE. using System; +using System.Linq; using System.Collections.Generic; namespace ICSharpCode.NRefactory.TypeSystem.Implementation @@ -152,6 +153,31 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation } } + public IEnumerable Methods { + get { + return Members.OfType (); + } + } + + public IEnumerable Properties { + get { + return Members.OfType (); + } + } + + public IEnumerable Fields { + get { + return Members.OfType (); + } + } + + public IEnumerable Events { + get { + return Members.OfType (); + } + } + + public IType Resolve(ITypeResolveContext context) { if (context == null)