Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //_writer.WriteStartElement(fileDependencyTagName); _writer.WriteAttributeString("name", vpath); _writer.WriteEndElement(); } // // 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007._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
- XamlFrame.cs
- GeneralTransformGroup.cs
- EventLogPermission.cs
- ErrorCodes.cs
- EventMappingSettingsCollection.cs
- EventDescriptor.cs
- SplineKeyFrames.cs
- ExtentJoinTreeNode.cs
- SettingsPropertyWrongTypeException.cs
- Boolean.cs
- VisemeEventArgs.cs
- IsolatedStorageFile.cs
- FloatAverageAggregationOperator.cs
- Event.cs
- OrderedDictionaryStateHelper.cs
- TagMapInfo.cs
- BamlWriter.cs
- Math.cs
- ToolStripMenuItem.cs
- Header.cs
- RecommendedAsConfigurableAttribute.cs
- EmulateRecognizeCompletedEventArgs.cs
- serverconfig.cs
- FontSourceCollection.cs
- ContentWrapperAttribute.cs
- DisplayNameAttribute.cs
- ResolveRequestResponseAsyncResult.cs
- WasEndpointConfigContainer.cs
- InvalidTimeZoneException.cs
- FixUpCollection.cs
- DPAPIProtectedConfigurationProvider.cs
- RootBrowserWindow.cs
- SafeNativeMethodsMilCoreApi.cs
- ExcCanonicalXml.cs
- ExpressionBindingsDialog.cs
- Wizard.cs
- DefaultObjectSerializer.cs
- CssClassPropertyAttribute.cs
- TypeUtils.cs
- PropertyChangedEventArgs.cs
- FunctionParameter.cs
- XPathNodeIterator.cs
- XmlObjectSerializer.cs
- CheckBoxAutomationPeer.cs
- MouseEventArgs.cs
- SQLBoolean.cs
- ProcessManager.cs
- CurrentChangingEventArgs.cs
- FactoryGenerator.cs
- MediaTimeline.cs
- IsolatedStorage.cs
- CertificateManager.cs
- HtmlListAdapter.cs
- Condition.cs
- GlyphingCache.cs
- ImageCodecInfo.cs
- CqlGenerator.cs
- CodeTypeReference.cs
- DataBoundControlAdapter.cs
- KnownBoxes.cs
- returneventsaver.cs
- DbConnectionClosed.cs
- SqlRowUpdatedEvent.cs
- Win32Native.cs
- SelectedGridItemChangedEvent.cs
- MTConfigUtil.cs
- GetPageNumberCompletedEventArgs.cs
- MsmqReceiveHelper.cs
- StreamInfo.cs
- ObjectListFieldsPage.cs
- HandledEventArgs.cs
- DES.cs
- SqlInternalConnectionTds.cs
- ProfileGroupSettings.cs
- AdornerPresentationContext.cs
- WriteTimeStream.cs
- LOSFormatter.cs
- ListViewUpdatedEventArgs.cs
- UnknownBitmapEncoder.cs
- ExpressionBuilder.cs
- InputScopeManager.cs
- BinaryCommonClasses.cs
- ScriptResourceAttribute.cs
- MarshalByValueComponent.cs
- MachineKeyConverter.cs
- ToolBarTray.cs
- TextTreeTextBlock.cs
- EnumerableRowCollectionExtensions.cs
- SchemaName.cs
- StoreUtilities.cs
- SourceChangedEventArgs.cs
- XmlNamespaceManager.cs
- CommonDialog.cs
- CustomAttributeFormatException.cs
- DbParameterHelper.cs
- NonBatchDirectoryCompiler.cs
- AccessorTable.cs
- DataRelationPropertyDescriptor.cs
- Decimal.cs
- FlowThrottle.cs