Ejemplo n.º 1
0
        /// <summary>
        /// 获取所有特征
        /// </summary>
        /// <param name="featMgr"><see cref="IFeatureManager"/></param>
        /// <param name="TopOnly">是否只获取顶级特征</param>
        /// <returns>特征</returns>
        public static IEnumerable <IFeature> GetFeaturesEx(this IFeatureManager featMgr, bool TopOnly = false)
        {
            var objarray = featMgr.GetFeatures(TopOnly) as object[];
            var feats    = objarray.Cast <IFeature>();

            if (feats != null)
            {
                return(feats);
            }
            else
            {
                throw new FeatMgrFeatsNotFoundException("无特征集返回");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Locate an extension at the given path by directly mapping path segments to physical directories.
        /// </summary>
        /// <param name="subpath">A path under the root directory</param>
        /// <returns>The extension information. null returned if extension does not exist</returns>
        public IExtensionInfo GetExtensionInfo(string subPath)
        {
            var manifest = _manifestBuilder.GetManifest(subPath);

            if (!manifest.Exists)
            {
                return(null);
            }

            var path = System.IO.Path.GetDirectoryName(subPath);
            var name = System.IO.Path.GetFileName(subPath);

            var extension = _fileProvider
                            .GetDirectoryContents(path)
                            .First(content => content.Name == name);

            return(new ExtensionInfo(extension, subPath, manifest, (ei) => {
                return _featureManager.GetFeatures(ei, manifest);
            }));
        }