summaryrefslogtreecommitdiff
path: root/FireBase/Offline/Internals/MemberAccessVisitor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'FireBase/Offline/Internals/MemberAccessVisitor.cs')
-rw-r--r--FireBase/Offline/Internals/MemberAccessVisitor.cs35
1 files changed, 15 insertions, 20 deletions
diff --git a/FireBase/Offline/Internals/MemberAccessVisitor.cs b/FireBase/Offline/Internals/MemberAccessVisitor.cs
index 1f7cb11..89a77da 100644
--- a/FireBase/Offline/Internals/MemberAccessVisitor.cs
+++ b/FireBase/Offline/Internals/MemberAccessVisitor.cs
@@ -1,51 +1,46 @@
-namespace Firebase.Database.Offline.Internals
-{
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using System.Reflection;
-
- using Newtonsoft.Json;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Reflection;
+using Newtonsoft.Json;
+namespace Firebase.Database.Offline.Internals
+{
public class MemberAccessVisitor : ExpressionVisitor
{
private readonly IList<string> propertyNames = new List<string>();
private bool wasDictionaryAccess;
- public IEnumerable<string> PropertyNames => this.propertyNames;
-
- public MemberAccessVisitor()
- {
- }
+ public IEnumerable<string> PropertyNames => propertyNames;
public override Expression Visit(Expression expr)
{
if (expr?.NodeType == ExpressionType.MemberAccess)
{
- if (this.wasDictionaryAccess)
+ if (wasDictionaryAccess)
{
- this.wasDictionaryAccess = false;
+ wasDictionaryAccess = false;
}
else
{
- var memberExpr = (MemberExpression)expr;
+ var memberExpr = (MemberExpression) expr;
var jsonAttr = memberExpr.Member.GetCustomAttribute<JsonPropertyAttribute>();
- this.propertyNames.Add(jsonAttr?.PropertyName ?? memberExpr.Member.Name);
+ propertyNames.Add(jsonAttr?.PropertyName ?? memberExpr.Member.Name);
}
}
else if (expr?.NodeType == ExpressionType.Call)
{
- var callExpr = (MethodCallExpression)expr;
+ var callExpr = (MethodCallExpression) expr;
if (callExpr.Method.Name == "get_Item" && callExpr.Arguments.Count == 1)
{
var e = Expression.Lambda(callExpr.Arguments[0]).Compile();
- this.propertyNames.Add(e.DynamicInvoke().ToString());
- this.wasDictionaryAccess = callExpr.Arguments[0].NodeType == ExpressionType.MemberAccess;
+ propertyNames.Add(e.DynamicInvoke().ToString());
+ wasDictionaryAccess = callExpr.Arguments[0].NodeType == ExpressionType.MemberAccess;
}
}
return base.Visit(expr);
}
}
-}
+} \ No newline at end of file