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