private static bool SubjectIsCapturedInstance(MemberExpression memberExpression) { if (memberExpression.Expression.NodeType != ExpressionType.Constant) { return(false); } var subjectType = ((ConstantExpression)memberExpression.Expression).Type; return(subjectType == memberExpression.Member.DeclaringType); }
private static string GetInstanceMemberSubject(MemberExpression memberExpression, TranslationContext context) { return(SubjectIsCapturedInstance(memberExpression) ? null : context.Translate(memberExpression.Expression)); }
private static string GetSubject(MemberExpression memberExpression, TranslationContext context) { return((memberExpression.Expression != null) ? GetInstanceMemberSubject(memberExpression, context) : memberExpression.Member.DeclaringType.GetFriendlyName()); }