public static ExpressionFingerprintChain GetFingerprintChain(Expression expr, out List <object> capturedConstants) { FingerprintingExpressionVisitor fingerprintingExpressionVisitor = new FingerprintingExpressionVisitor(); fingerprintingExpressionVisitor.Visit(expr); if (fingerprintingExpressionVisitor._gaveUp) { capturedConstants = null; return(null); } capturedConstants = fingerprintingExpressionVisitor._seenConstants; return(fingerprintingExpressionVisitor._currentChain); }
// Returns the fingerprint chain + captured constants list for this expression, or null // if the expression couldn't be fingerprinted. public static ExpressionFingerprintChain?GetFingerprintChain(Expression expr, out List <object>?capturedConstants) { var visitor = new FingerprintingExpressionVisitor(); visitor.Visit(expr); if (visitor._gaveUp) { capturedConstants = null; return(null); } else { capturedConstants = visitor._seenConstants; return(visitor._currentChain); } }