예제 #1
0
        public PathInfo GetOrAdd(string path)
        {
            if (_paths.TryGetValue(path, out var pathInfo))
            {
                return(pathInfo);
            }

            pathInfo = PathResolver.GetPathInfo(path);
            _paths.Add(path, pathInfo);

            var trimmedPath = pathInfo.TrimmedPath;

            if ((pathInfo.IsBlockHelper || pathInfo.IsInversion) && !_paths.ContainsKey(trimmedPath))
            {
                _paths.Add(trimmedPath, PathResolver.GetPathInfo(trimmedPath));
            }

            return(pathInfo);
        }
예제 #2
0
 public PathExpression(string path)
 {
     Path     = path;
     PathInfo = PathResolver.GetPathInfo(path);
 }