Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntityDesign / Design / System / Data / EntityModel / LazyTextWriterCreator.cs / 1 / LazyTextWriterCreator.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Diagnostics; namespace System.Data.Entity.Design { ////// This class is responsible for abstracting the knowledge /// of whether the user provided a TextWriter or a FilePath. /// /// If the user gave us a filePath we try not to create the TextWriter /// till we absolutely need it in order to prevent the file from being created /// in error cases. /// internal class LazyTextWriterCreator : IDisposable { private bool _ownTextWriter; private TextWriter _writer = null; private string _targetFilePath = null; internal LazyTextWriterCreator(TextWriter writer) { Debug.Assert(writer != null, "writer parameter is null"); _ownTextWriter = false; _writer = writer; } internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal TextWriter GetOrCreateTextWriter() { if (_writer == null) { // lazy creating the writer _writer = new StreamWriter(_targetFilePath); } return _writer; } internal string TargetFilePath { get { return _targetFilePath; } } public void Dispose() { if (_ownTextWriter && _writer != null) { _writer.Dispose(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Diagnostics; namespace System.Data.Entity.Design { ////// This class is responsible for abstracting the knowledge /// of whether the user provided a TextWriter or a FilePath. /// /// If the user gave us a filePath we try not to create the TextWriter /// till we absolutely need it in order to prevent the file from being created /// in error cases. /// internal class LazyTextWriterCreator : IDisposable { private bool _ownTextWriter; private TextWriter _writer = null; private string _targetFilePath = null; internal LazyTextWriterCreator(TextWriter writer) { Debug.Assert(writer != null, "writer parameter is null"); _ownTextWriter = false; _writer = writer; } internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal TextWriter GetOrCreateTextWriter() { if (_writer == null) { // lazy creating the writer _writer = new StreamWriter(_targetFilePath); } return _writer; } internal string TargetFilePath { get { return _targetFilePath; } } public void Dispose() { if (_ownTextWriter && _writer != null) { _writer.Dispose(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TableAdapterManagerNameHandler.cs
- EraserBehavior.cs
- XmlNavigatorStack.cs
- Select.cs
- DbConnectionFactory.cs
- ColumnHeaderConverter.cs
- SerTrace.cs
- TypeExtension.cs
- ProxyAttribute.cs
- DataGridLinkButton.cs
- WindowShowOrOpenTracker.cs
- DrawingImage.cs
- NavigatingCancelEventArgs.cs
- SystemIPAddressInformation.cs
- BitHelper.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- Root.cs
- SafeFileMappingHandle.cs
- ConnectionStringSettings.cs
- ListViewDataItem.cs
- ExplicitDiscriminatorMap.cs
- SettingsPropertyNotFoundException.cs
- TypeReference.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- XPathDocument.cs
- ImageSourceValueSerializer.cs
- RbTree.cs
- SchemaContext.cs
- HwndStylusInputProvider.cs
- BlobPersonalizationState.cs
- ReflectionServiceProvider.cs
- mediaclock.cs
- AddValidationError.cs
- Section.cs
- ConfigPathUtility.cs
- GuidelineSet.cs
- GPPOINT.cs
- TextParagraphProperties.cs
- RtType.cs
- DeflateStream.cs
- DataGridSortCommandEventArgs.cs
- XmlNamedNodeMap.cs
- XmlTextEncoder.cs
- ForeignConstraint.cs
- Thread.cs
- PersonalizationStateInfoCollection.cs
- ConsoleTraceListener.cs
- Pen.cs
- TextMetrics.cs
- DataGridViewColumnCollectionEditor.cs
- ObjectDataSourceDisposingEventArgs.cs
- TableLayoutStyleCollection.cs
- BitStack.cs
- EncryptedType.cs
- ProjectedSlot.cs
- mactripleDES.cs
- ECDiffieHellmanPublicKey.cs
- PagesChangedEventArgs.cs
- SelectionRange.cs
- JournalNavigationScope.cs
- RecordManager.cs
- Attributes.cs
- WindowPattern.cs
- OleDbError.cs
- ScriptingWebServicesSectionGroup.cs
- RequestCachingSection.cs
- DesignTimeParseData.cs
- DelegatingTypeDescriptionProvider.cs
- TextEditorSpelling.cs
- IncrementalCompileAnalyzer.cs
- CallContext.cs
- StringAnimationUsingKeyFrames.cs
- ValidationErrorCollection.cs
- XsdBuildProvider.cs
- MsmqBindingBase.cs
- DeclarationUpdate.cs
- SoapExtensionReflector.cs
- BaseResourcesBuildProvider.cs
- SEHException.cs
- ComponentSerializationService.cs
- SynchronizedPool.cs
- TextServicesManager.cs
- StylusPlugInCollection.cs
- DoubleLink.cs
- PriorityChain.cs
- ContextMenuStripActionList.cs
- ArgumentOutOfRangeException.cs
- DocumentApplicationJournalEntry.cs
- XmlSerializableWriter.cs
- ObjectReferenceStack.cs
- DiscriminatorMap.cs
- DataGridViewCellFormattingEventArgs.cs
- LassoSelectionBehavior.cs
- TextEndOfLine.cs
- ScalarConstant.cs
- SqlParameterizer.cs
- GatewayIPAddressInformationCollection.cs
- UIElementPropertyUndoUnit.cs
- InternalConfigHost.cs
- Context.cs