Code:
/ FX-1434 / FX-1434 / 1.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.WriteEndElement(); } } internal void SetAttribute(string name, string value) { _writer.WriteAttributeString(name, value); } } }_writer.WriteStartElement(fileDependencyTagName); _writer.WriteAttributeString("name", vpath); _writer.WriteEndElement(); } //
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OdbcDataReader.cs
- DataGridBoolColumn.cs
- Function.cs
- Stackframe.cs
- CallContext.cs
- BinaryFormatterWriter.cs
- SinglePageViewer.cs
- HttpWriter.cs
- ReflectionPermission.cs
- safemediahandle.cs
- HTMLTagNameToTypeMapper.cs
- DataGridColumnEventArgs.cs
- ComNativeDescriptor.cs
- TextParagraphView.cs
- ResourceDefaultValueAttribute.cs
- OracleParameterCollection.cs
- SvcMapFile.cs
- HGlobalSafeHandle.cs
- QilInvokeLateBound.cs
- FontDriver.cs
- XmlLanguageConverter.cs
- PropertyDescriptorComparer.cs
- PropertyEmitter.cs
- BaseAutoFormat.cs
- ControlTemplate.cs
- XmlSchemaInclude.cs
- AlphabeticalEnumConverter.cs
- DataControlReferenceCollection.cs
- DataFormats.cs
- RepeatEnumerable.cs
- SqlDesignerDataSourceView.cs
- unsafeIndexingFilterStream.cs
- BrowserTree.cs
- AudioFileOut.cs
- SelectionItemProviderWrapper.cs
- WebPartZone.cs
- Point4DConverter.cs
- SecurityResources.cs
- ContractNamespaceAttribute.cs
- GenericTextProperties.cs
- DirtyTextRange.cs
- MatchingStyle.cs
- EdmError.cs
- SiteMembershipCondition.cs
- FieldBuilder.cs
- CompressionTransform.cs
- OdbcConnectionStringbuilder.cs
- JavaScriptString.cs
- SplineQuaternionKeyFrame.cs
- WindowsGraphicsCacheManager.cs
- DockingAttribute.cs
- DocumentViewerBase.cs
- XmlUrlEditor.cs
- XmlWhitespace.cs
- XmlUrlResolver.cs
- assertwrapper.cs
- PropertyBuilder.cs
- Rfc2898DeriveBytes.cs
- ProcessHostMapPath.cs
- OracleDataAdapter.cs
- AttachInfo.cs
- ObjectDataSourceStatusEventArgs.cs
- PreProcessInputEventArgs.cs
- SoapElementAttribute.cs
- altserialization.cs
- FactoryRecord.cs
- UpdateTranslator.cs
- ReadOnlyDataSource.cs
- SqlEnums.cs
- ListViewPagedDataSource.cs
- AssemblyLoader.cs
- HttpConfigurationContext.cs
- Html32TextWriter.cs
- LinqDataSourceValidationException.cs
- OracleColumn.cs
- BufferBuilder.cs
- RSAPKCS1SignatureFormatter.cs
- InkCanvas.cs
- ImageSource.cs
- ProfileGroupSettings.cs
- SqlInternalConnectionSmi.cs
- TimelineCollection.cs
- CreateUserWizardAutoFormat.cs
- Baml2006KnownTypes.cs
- EtwTrace.cs
- NotImplementedException.cs
- UserControl.cs
- CacheChildrenQuery.cs
- CustomSignedXml.cs
- SqlBulkCopy.cs
- EdmItemCollection.cs
- xmlsaver.cs
- NavigateEvent.cs
- ServiceNameElement.cs
- EditorAttribute.cs
- XmlSchemaSimpleContentRestriction.cs
- BigInt.cs
- ListViewDeletedEventArgs.cs
- LockCookie.cs
- GenerateHelper.cs