public static ExpressionFingerprint Create(Expression expression, ParserContext context) { BinaryExpression binaryExpression = (expression as BinaryExpression); if (binaryExpression != null) { return(BinaryExpressionFingerprint.Create(binaryExpression, context)); } ConditionalExpression conditionalExpression = (expression as ConditionalExpression); if (conditionalExpression != null) { return(ConditionalExpressionFingerprint.Create(conditionalExpression, context)); } ConstantExpression constantExpression = (expression as ConstantExpression); if (constantExpression != null) { return(ConstantExpressionFingerprint.Create(constantExpression, context)); } MemberExpression memberExpression = (expression as MemberExpression); if (memberExpression != null) { return(MemberExpressionFingerprint.Create(memberExpression, context)); } MethodCallExpression methodCallExpression = (expression as MethodCallExpression); if (methodCallExpression != null) { return(MethodCallExpressionFingerprint.Create(methodCallExpression, context)); } ParameterExpression parameterExpression = (expression as ParameterExpression); if (parameterExpression != null) { return(ParameterExpressionFingerprint.Create(parameterExpression, context)); } UnaryExpression unaryExpression = (expression as UnaryExpression); if (unaryExpression != null) { return(UnaryExpressionFingerprint.Create(unaryExpression, context)); } return(null); }
public override bool Equals(object obj) { MethodCallExpressionFingerprint other = (obj as MethodCallExpressionFingerprint); if (other == null) { return(false); } return(_arguments.SequenceEqual(other._arguments) && _method == other._method && Object.Equals(_target, other._target) && base.Equals(other)); }