本文整理汇总了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();
}
}