NuGet.VersionUtility.ParseFrameworkNameFromFilePath C# (CSharp) Метод

ParseFrameworkNameFromFilePath() приватный Метод

private ParseFrameworkNameFromFilePath ( string filePath, string &effectivePath ) : FrameworkName
filePath string
effectivePath string
Результат FrameworkName
        public static FrameworkName ParseFrameworkNameFromFilePath(string filePath, out string effectivePath)
        {
            var knownFolders = new string[]
            {
                Constants.ContentDirectory,
                Constants.LibDirectory,
                Constants.ToolsDirectory
            };

            for (int i = 0; i < knownFolders.Length; i++)
            {
                string folderPrefix = knownFolders[i] + System.IO.Path.DirectorySeparatorChar;
                if (filePath.Length > folderPrefix.Length &&
                    filePath.StartsWith(folderPrefix, StringComparison.OrdinalIgnoreCase))
                {
                    string frameworkPart = filePath.Substring(folderPrefix.Length);

                    try
                    {
                        return VersionUtility.ParseFrameworkFolderName(
                            frameworkPart,
                            strictParsing: knownFolders[i] != Constants.ContentDirectory,
                            effectivePath: out effectivePath);
                    }
                    catch (ArgumentException)
                    {
                        // if the parsing fails, we treat it as if this file
                        // doesn't have target framework.
                        effectivePath = frameworkPart;
                        return null;
                    }
                }
            }

            effectivePath = filePath;
            return null;
        }

Usage Example

Пример #1
0
        public override IEnumerable <FrameworkName> GetSupportedFrameworks()
        {
            IEnumerable <FrameworkName> enumerable;
            IEnumerable <IPackageFile>  enumerable2;

            if (this._enableCaching && MemoryCache.Instance.TryGetValue <IEnumerable <IPackageFile> >(this.GetFilesCacheKey(), out enumerable2))
            {
                enumerable = from c in enumerable2 select c.TargetFramework;
            }
            else
            {
                using (Stream stream = this._streamFactory())
                {
                    enumerable = Enumerable.Select <PackagePart, FrameworkName>(from part in Package.Open(stream).GetParts()
                                                                                where IsPackageFile(part)
                                                                                select part, delegate(PackagePart part) {
                        string effectivePath;
                        return(VersionUtility.ParseFrameworkNameFromFilePath(UriUtility.GetPath(part.Uri), out effectivePath));
                    });
                }
            }
            return((from f in base.GetSupportedFrameworks().Concat <FrameworkName>(enumerable)
                    where f != null
                    select f).Distinct <FrameworkName>());
        }
All Usage Examples Of NuGet.VersionUtility::ParseFrameworkNameFromFilePath