Skip to content

Commit 7707bbe

Browse files
committed
improve the generation of invocations for static methods
1 parent 3de56bd commit 7707bbe

File tree

5 files changed

+14
-22
lines changed

5 files changed

+14
-22
lines changed

sources/RevitDBExplorer/Domain/DataModel/Members/Base/MemberOverride.cs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,7 @@ public static IMemberOverride ByFunc<TReturnType>(Expression<Func<Document, TFor
2727
var compiledGetter = getter.Compile();
2828
var methodCallExpression = getter.Body as MethodCallExpression;
2929

30-
string syntax = null;
31-
if (methodCallExpression.Object is ParameterExpression)
32-
{
33-
var uniformMethodCallExpression = methodCallExpression.Update(Expression.Parameter(methodCallExpression.Object.Type, "item"), methodCallExpression.Arguments);
34-
syntax = uniformMethodCallExpression.ToString();
35-
}
36-
if (methodCallExpression.Object == null)
37-
{
38-
syntax = $"{methodCallExpression.Method.DeclaringType.Name}." + methodCallExpression.ToString();
39-
}
30+
string syntax = methodCallExpression.ToCeSharp();
4031
var uniqueId = getter.GetUniqueId();
4132

4233
return new MemberOverride<TForType>()

sources/RevitDBExplorer/Domain/DataModel/Members/Base/MemberTemplate.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static ISnoopableMemberTemplate Create<TReturnType>(Expression<Func<Docum
4040
var memberAccessor = new MemberAccessorByFunc<TForType, TReturnType>(compiledGetter);
4141

4242
memberAccessor.UniqueId = $"{typeof(TForType).Name}_{getter.GetUniqueId()}";
43-
43+
memberAccessor.DefaultInvocation.Syntax = methodCallExpression.ToCeSharp();
4444

4545
return WithCustomAC(methodCallExpression.Method.DeclaringType, methodCallExpression.Method.Name, memberAccessor, canBeUsed, kind, () => RevitDocumentationReader.GetMethodComments(methodCallExpression.Method));
4646
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/Document/Document.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using Autodesk.Revit.DB;
34
using RevitDBExplorer.Domain.DataModel.Members;
45
using RevitDBExplorer.Domain.DataModel.Members.Base;
@@ -12,6 +13,14 @@ internal class Document_Overrides : IHaveMembersOverrides
1213
public IEnumerable<IMemberOverride> GetOverrides() =>
1314
[
1415
MemberOverride<Document>.ByFunc((doc, document) => Document.GetDocumentVersion(document)),
16+
17+
#if R2023_MIN
18+
MemberOverride<Document>.ByFunc((doc, document) => document.GetChangedElements(Guid.Empty)),
19+
#endif
20+
#if R2024_MIN
21+
MemberOverride<Document>.ByFunc((doc, document) => document.GetUnusedElements(new HashSet<ElementId>())),
22+
MemberOverride<Document>.ByFunc((doc, document) => document.GetAllUnusedElements(new HashSet<ElementId>())),
23+
#endif
1524
];
1625
}
1726
}

sources/RevitDBExplorer/Domain/DataModel/MembersTemplates/Document_Templates.cs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,12 @@ namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
1111
internal class Document_Templates : IHaveMemberTemplates
1212
{
1313
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
14-
[
15-
#if R2023_MIN
16-
MemberTemplate<Document>.Create((doc, target) => target.GetChangedElements(Guid.Empty), kind: MemberKind.Method),
17-
#endif
18-
14+
[
1915
MemberTemplate<Document>.Create((doc, target) => BasicFileInfo.Extract(target.PathName), kind: MemberKind.StaticMethod),
2016

2117
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetSurveyPoint(doc), kind: MemberKind.StaticMethod),
2218
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetProjectBasePoint(doc), kind: MemberKind.StaticMethod),
2319
MemberTemplate<Document>.Create((doc, target) => InternalOrigin.Get(doc), kind: MemberKind.StaticMethod),
24-
25-
#if R2024_MIN
26-
MemberTemplate<Document>.Create((doc, target) => doc.GetUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
27-
MemberTemplate<Document>.Create((doc, target) => doc.GetAllUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
28-
#endif
2920
];
3021
}
3122
}

sources/RevitDBExplorer/RevitDBExplorer.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868

6969

7070
<ItemGroup>
71+
<PackageReference Include="ExpressionTreeToString" Version="3.4.71" />
7172
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="7.0.0" />
7273
<PackageReference Include="CircularBuffer" Version="1.3.0" />
7374
<PackageReference Include="LoxSmoke.DocXml" Version="3.5.0" />

0 commit comments

Comments
 (0)