当前位置: 首页>>代码示例>>C#>>正文


C# Resource.FileContents方法代码示例

本文整理汇总了C#中Resource.FileContents方法的典型用法代码示例。如果您正苦于以下问题:C# Resource.FileContents方法的具体用法?C# Resource.FileContents怎么用?C# Resource.FileContents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Resource的用法示例。


在下文中一共展示了Resource.FileContents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProcessResource

        private ResourcePath ProcessResource(Resource resource, bool minify, bool cacheRefresh)
        {
            if (resource == null) throw new ArgumentNullException("resource");

            if (!(resource is EmbeddedResource) && (resource.IsExternal || !minify))
                return new ResourcePath {ContentType = resource.ContentType, Url = resource.Url};

            var cacheKey = resource.FileName.ToMinPath();

            var upgraded = false;
            try
            {
                cacheLock.EnterUpgradeableReadLock();

                var cached = cacheProvider.Get<ResourcePath>(cacheKey);
                if (cached != null && cacheRefresh)
                    return cached;

                cacheLock.EnterWriteLock();
                upgraded = true;

                var priorWrite = cacheProvider.Get<ResourcePath>(cacheKey);
                if (priorWrite != null && cacheRefresh)
                    return priorWrite;

                // regenerate
                var result = new ResourcePath();
                result.ContentType = resource.ContentType;
                result.Contents = resource.FileContents();
                result.Url = Url.Action("fetch", "resource", new {id = cacheKey});

                // minify

                if (minify)
                {
                    result.Contents = resource.ContentType == "text/javascript"
                                          ? JavaScriptCompressor.Compress(result.Contents)
                                          : CssCompressor.Compress(result.Contents);
                }

                // write backup file
                var physicalFilePath = GetFilePath(cacheKey, false);
                if (!Directory.Exists(Path.GetDirectoryName(physicalFilePath)))
                    Directory.CreateDirectory(Path.GetDirectoryName(physicalFilePath));

                if (File.Exists(physicalFilePath))
                    File.Delete(physicalFilePath);

                File.WriteAllText(physicalFilePath, result.Contents);
                result.FileName = physicalFilePath;

                cacheProvider.Add(cacheKey, result, resource.DependentFile);
                return result;
            }
            finally
            {
                if (upgraded)
                    cacheLock.ExitWriteLock();

                cacheLock.ExitUpgradeableReadLock();
            }
        }
开发者ID:tuanvt,项目名称:EyePatch,代码行数:62,代码来源:ResourceService.cs


注:本文中的Resource.FileContents方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。