Skip to content
This repository was archived by the owner on Jan 22, 2026. It is now read-only.

Commit c2f970a

Browse files
committed
Extract GetMethod method
1 parent adbc944 commit c2f970a

1 file changed

Lines changed: 29 additions & 27 deletions

File tree

src/BitzArt.XDoc/Utility/XmlParser.cs

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -75,43 +75,45 @@ private TypeDocumentation ParseTypeNode(XmlNode node, string name)
7575

7676
private PropertyDocumentation ParsePropertyNode(XmlNode node, string name)
7777
=> ParseMemberNode(name,
78-
(type, memberName, paramaters) => type.GetProperty(memberName),
78+
(type, memberName, _) => type.GetProperty(memberName),
7979
member => new PropertyDocumentation(_source, member, node));
8080

8181
private FieldDocumentation ParseFieldNode(XmlNode node, string name)
8282
=> ParseMemberNode(name,
83-
(type, memberName, parameters) => type.GetField(memberName),
83+
(type, memberName, _) => type.GetField(memberName),
8484
member => new FieldDocumentation(_source, member, node));
8585

8686
private MethodDocumentation? ParseMethodNode(XmlNode node, string name)
8787
=> ParseMemberNode(name,
88-
(type, memberName, parameters) =>
89-
{
90-
return type.GetMethods()
91-
.Where(method => method.Name == memberName)
92-
.Where(method =>
93-
{
94-
var methodParameters = method
95-
.GetParameters()
96-
.Select(o => GetTypeFriendlyName(o.ParameterType))
97-
.ToList();
98-
99-
if (methodParameters.Count != parameters.Count)
100-
{
101-
return false;
102-
}
103-
104-
if (methodParameters.All(mp => parameters.Contains(mp)))
105-
{
106-
return true;
107-
}
108-
109-
return false;
110-
})
111-
.SingleOrDefault();
112-
},
88+
(type, memberName, parameters) => GetMethod(type, memberName, parameters),
11389
member => new MethodDocumentation(_source, member, node));
11490

91+
private static MethodInfo? GetMethod(Type type, string name, IReadOnlyCollection<string> parameters)
92+
{
93+
return type.GetMethods()
94+
.Where(method => method.Name == name)
95+
.Where(method =>
96+
{
97+
var methodParameters = method
98+
.GetParameters()
99+
.Select(o => GetTypeFriendlyName(o.ParameterType))
100+
.ToList();
101+
102+
if (methodParameters.Count != parameters.Count)
103+
{
104+
return false;
105+
}
106+
107+
if (methodParameters.All(parameters.Contains))
108+
{
109+
return true;
110+
}
111+
112+
return false;
113+
})
114+
.SingleOrDefault();
115+
}
116+
115117
private TDocumentation ParseMemberNode<TMember, TDocumentation>(string name, Func<Type, string, IReadOnlyCollection<string>, TMember?> getMember, Func<TMember, TDocumentation> getDocumentation)
116118
where TMember : MemberInfo
117119
where TDocumentation : MemberDocumentation<TMember>

0 commit comments

Comments
 (0)