Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- SecurityDescriptor.cs
- GridItem.cs
- ZipIOExtraFieldElement.cs
- EmptyControlCollection.cs
- TemplateDefinition.cs
- RepeatButtonAutomationPeer.cs
- InstallerTypeAttribute.cs
- ResourceWriter.cs
- RegexInterpreter.cs
- PropertyOrder.cs
- InputManager.cs
- FragmentQueryProcessor.cs
- HorizontalAlignConverter.cs
- ArgumentNullException.cs
- StrokeNodeOperations.cs
- BuildTopDownAttribute.cs
- XmlHierarchyData.cs
- CapacityStreamGeometryContext.cs
- ServiceReference.cs
- Parsers.cs
- FeatureAttribute.cs
- RegexFCD.cs
- SelectionPattern.cs
- DataAdapter.cs
- DataGridTextBox.cs
- Line.cs
- ClonableStack.cs
- Properties.cs
- CommonObjectSecurity.cs
- PrivilegeNotHeldException.cs
- JournalNavigationScope.cs
- TextProperties.cs
- DivideByZeroException.cs
- ServiceOperationWrapper.cs
- RsaSecurityKey.cs
- EnumerableCollectionView.cs
- InternalConfigConfigurationFactory.cs
- SymbolMethod.cs
- AuthenticationService.cs
- WinEventQueueItem.cs
- TransformerInfo.cs
- ToolTip.cs
- IdentityModelStringsVersion1.cs
- _LocalDataStoreMgr.cs
- RootBuilder.cs
- EntityContainerRelationshipSet.cs
- XmlWrappingReader.cs
- RowSpanVector.cs
- Exceptions.cs
- ToolStripDropDownClosedEventArgs.cs
- Thumb.cs
- TextTreeRootNode.cs
- DesignerTransaction.cs
- LinqDataSourceContextEventArgs.cs
- SerializerDescriptor.cs
- TableLayoutSettings.cs
- MimeFormatExtensions.cs
- SwitchExpression.cs
- XmlSchemaObject.cs
- WmlCalendarAdapter.cs
- SqlDataSource.cs
- TraceLog.cs
- Membership.cs
- XmlProcessingInstruction.cs
- AccessibleObject.cs
- MatrixTransform.cs
- CodeLinePragma.cs
- InputProcessorProfilesLoader.cs
- UserUseLicenseDictionaryLoader.cs
- CategoryGridEntry.cs
- EnumerableRowCollectionExtensions.cs
- ItemDragEvent.cs
- ValidationContext.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- ProcessProtocolHandler.cs
- PropertyGridView.cs
- SafeCryptContextHandle.cs
- TreeViewHitTestInfo.cs
- DateTimeOffsetStorage.cs
- DiscoveryClientDuplexChannel.cs
- ListenerSessionConnection.cs
- ReadOnlyTernaryTree.cs
- ReferenceConverter.cs
- activationcontext.cs
- SigningDialog.cs
- PerformanceCounterPermissionEntry.cs
- CatalogZoneAutoFormat.cs
- Int32Collection.cs
- RenderDataDrawingContext.cs
- SpecularMaterial.cs
- TypeLoadException.cs
- TitleStyle.cs
- SafeCryptContextHandle.cs
- ObjectToModelValueConverter.cs
- DeviceContexts.cs
- BitmapEffectDrawing.cs
- SqlDataSourceConnectionPanel.cs
- TreeViewImageIndexConverter.cs
- LayoutEvent.cs
- WebUtil.cs