Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Compilation / PreservationFileWriter.cs / 1 / PreservationFileWriter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.IO;
using System.Collections;
using System.Globalization;
using System.Text;
using System.Xml;
using System.Web.Util;
using System.Web.UI;
internal class PreservationFileWriter {
private XmlTextWriter _writer;
private bool _precompilationMode;
internal const string fileDependenciesTagName = "filedeps";
internal const string fileDependencyTagName = "filedep";
internal const string buildResultDependenciesTagName = "builddeps";
internal const string buildResultDependencyTagName = "builddep";
internal PreservationFileWriter(bool precompilationMode) {
_precompilationMode = precompilationMode;
}
internal void SaveBuildResultToFile(string preservationFile,
BuildResult result, long hashCode) {
_writer = new XmlTextWriter(preservationFile, Encoding.UTF8);
try {
_writer.Formatting = Formatting.Indented;
_writer.Indentation = 4;
_writer.WriteStartDocument();
//
_writer.WriteStartElement("preserve");
// Save the type of BuildResult we're dealing with
Debug.Assert(result.GetCode() != BuildResultTypeCode.Invalid);
SetAttribute("resultType", ((int)result.GetCode()).ToString(CultureInfo.InvariantCulture));
// Save the virtual path for this BuildResult
if (result.VirtualPath != null)
SetAttribute("virtualPath", result.VirtualPath.VirtualPathString);
// Get the hash code of the BuildResult
long hash = result.ComputeHashCode(hashCode);
// The hash should always be valid if we got here.
Debug.Assert(hash != 0, "hash != 0");
// Save it to the preservation file
SetAttribute("hash", hash.ToString("x", CultureInfo.InvariantCulture));
// Can be null if that's what the VirtualPathProvider returns
string fileHash = result.VirtualPathDependenciesHash;
if (fileHash != null)
SetAttribute("filehash", fileHash);
result.SetPreservedAttributes(this);
SaveDependencies(result.VirtualPathDependencies);
//
_writer.WriteEndElement();
_writer.WriteEndDocument();
_writer.Close();
}
catch {
// If an exception occurs during the writing of the xml file, clean it up
_writer.Close();
File.Delete(preservationFile);
throw;
}
}
private void SaveDependencies(ICollection dependencies) {
// Write all the dependencies
if (dependencies != null) {
//
_writer.WriteStartElement(fileDependenciesTagName);
foreach (string vpath in dependencies) {
// e.g.
_writer.WriteStartElement(fileDependencyTagName);
_writer.WriteAttributeString("name", vpath);
_writer.WriteEndElement();
}
//
_writer.WriteEndElement();
}
}
internal void SetAttribute(string name, string value) {
_writer.WriteAttributeString(name, value);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemResources.cs
- HttpListenerPrefixCollection.cs
- safesecurityhelperavalon.cs
- ConditionalAttribute.cs
- ImageMap.cs
- SystemIPv4InterfaceProperties.cs
- ObjectContext.cs
- AmbientProperties.cs
- ChannelManager.cs
- XmlNodeChangedEventArgs.cs
- LinqDataSourceEditData.cs
- EventSetter.cs
- PeerCollaborationPermission.cs
- StringUtil.cs
- NullableIntSumAggregationOperator.cs
- DependencyPropertyConverter.cs
- PointCollectionConverter.cs
- ExtendedPropertyInfo.cs
- SiteMapDataSource.cs
- EntityDataSourceDataSelection.cs
- MarkupCompilePass2.cs
- __Error.cs
- UpDownBaseDesigner.cs
- SchemaConstraints.cs
- ContentPresenter.cs
- ListItemConverter.cs
- DbgCompiler.cs
- HttpContextServiceHost.cs
- DelimitedListTraceListener.cs
- Matrix.cs
- ReachDocumentReferenceCollectionSerializer.cs
- HiddenField.cs
- TextStore.cs
- RouteValueExpressionBuilder.cs
- EncodingTable.cs
- Permission.cs
- GridView.cs
- PeerContact.cs
- ObjectTokenCategory.cs
- FixedSOMPage.cs
- IdentityValidationException.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- SourceFileBuildProvider.cs
- coordinatorfactory.cs
- WindowsGraphics.cs
- WorkflowValidationFailedException.cs
- Errors.cs
- SqlFactory.cs
- RectAnimationClockResource.cs
- PolyLineSegment.cs
- TemplateKey.cs
- Binding.cs
- Vector3DCollection.cs
- HttpCapabilitiesEvaluator.cs
- CoTaskMemUnicodeSafeHandle.cs
- MinimizableAttributeTypeConverter.cs
- MethodToken.cs
- OrderByQueryOptionExpression.cs
- NetNamedPipeSecurityElement.cs
- TypeConverter.cs
- CustomErrorsSectionWrapper.cs
- SqlCacheDependencySection.cs
- BoolExpression.cs
- TextRangeBase.cs
- SaveFileDialog.cs
- ValidationManager.cs
- SrgsGrammarCompiler.cs
- SelectedCellsChangedEventArgs.cs
- UniqueIdentifierService.cs
- XmlBinaryReader.cs
- TypeConverterHelper.cs
- CaseInsensitiveOrdinalStringComparer.cs
- baseaxisquery.cs
- DelegatingTypeDescriptionProvider.cs
- EntityClassGenerator.cs
- TypeResolver.cs
- PropertyChangedEventArgs.cs
- SafeNativeMethods.cs
- XmlSchemaImport.cs
- StringOutput.cs
- FeatureSupport.cs
- WsatEtwTraceListener.cs
- VisualState.cs
- ContentElementAutomationPeer.cs
- DataViewListener.cs
- GridViewAutomationPeer.cs
- HostProtectionException.cs
- BinHexDecoder.cs
- ThrowHelper.cs
- DecoderFallback.cs
- SystemPens.cs
- SystemInfo.cs
- BlobPersonalizationState.cs
- MetadataAssemblyHelper.cs
- BitmapEffectState.cs
- TextChangedEventArgs.cs
- Message.cs
- AlternateView.cs
- QuotedPrintableStream.cs
- validationstate.cs