diff options
author | natrixaeria <janng@gmx.de> | 2019-05-19 17:40:59 +0200 |
---|---|---|
committer | natrixaeria <janng@gmx.de> | 2019-05-19 17:40:59 +0200 |
commit | 1509b5ef3d7e9e71d9294e234ec0e39f2d831998 (patch) | |
tree | 78300ffff230958101b422a4e6026925b287822f /FireBase/Offline/Internals/MemberAccessVisitor.cs | |
parent | c3bb858bb54dc8c64bbd48054c2c58dc0073f09c (diff) | |
parent | c4d046858e0822b7c2c540ac2368b2c0e88e7a26 (diff) |
Merge branch 'scribble' of https://github.com/TrueDoctor/DiscoBot into scribble
Diffstat (limited to 'FireBase/Offline/Internals/MemberAccessVisitor.cs')
-rw-r--r-- | FireBase/Offline/Internals/MemberAccessVisitor.cs | 35 |
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 |