public FilterPredicate(string propertyNameOverride, scan_context ctx, PropertyInfo pi, FilterBinaryOperator op = FilterBinaryOperator.Eq)
 {
     _contextExpression = ctx.Expression;
     _propertyName      = propertyNameOverride;
     _path     = ctx.Path + _propertyName;
     _propInfo = ctx.CtxType.GetProperty(_propertyName);             // ReflectionHelper.GetPropertyFromPath(ctx.CtxType, _path);
     _operator = op;
     _propertyValueSnapshot = null;
 }
 public scan_context(scan_context orig)
 {
     _curentTypesChain = new Stack <ctx_elem>(orig._curentTypesChain.Reverse());
 }