Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- RowCache.cs
- ProgressBar.cs
- CodeExpressionCollection.cs
- CellCreator.cs
- SiteMapPath.cs
- LocatorGroup.cs
- PatternMatchRules.cs
- WriteStateInfoBase.cs
- PersonalizationProviderHelper.cs
- UserPersonalizationStateInfo.cs
- Variable.cs
- ImplicitInputBrush.cs
- ControlBindingsCollection.cs
- XmlValidatingReader.cs
- NavigateEvent.cs
- Page.cs
- QilPatternFactory.cs
- SqlDataRecord.cs
- WebConfigurationHostFileChange.cs
- BitmapScalingModeValidation.cs
- WindowsRichEdit.cs
- SqlConnectionHelper.cs
- ValidatedControlConverter.cs
- SpecialFolderEnumConverter.cs
- AccessViolationException.cs
- XmlSchemaAttributeGroup.cs
- NotImplementedException.cs
- Int64.cs
- Html32TextWriter.cs
- WebPartPersonalization.cs
- FileLogRecord.cs
- RequestValidator.cs
- CompositeControl.cs
- EventBuilder.cs
- FrameworkElementAutomationPeer.cs
- FreezableOperations.cs
- WebPartDisplayModeCollection.cs
- DSACryptoServiceProvider.cs
- Point3DCollection.cs
- WebResourceAttribute.cs
- dbenumerator.cs
- CodeEntryPointMethod.cs
- GlyphTypeface.cs
- ResourceContainer.cs
- OleDbInfoMessageEvent.cs
- TemplateBindingExtensionConverter.cs
- Size3D.cs
- RemoteWebConfigurationHost.cs
- EdgeProfileValidation.cs
- PassportAuthentication.cs
- CheckoutException.cs
- Brush.cs
- XmlSchemaFacet.cs
- UserUseLicenseDictionaryLoader.cs
- CustomLineCap.cs
- diagnosticsswitches.cs
- SecureStringHasher.cs
- SchemaTableOptionalColumn.cs
- OverrideMode.cs
- ElementMarkupObject.cs
- XPathBuilder.cs
- DataGrid.cs
- DesignerDataConnection.cs
- DesignerForm.cs
- WsiProfilesElementCollection.cs
- TreeViewImageKeyConverter.cs
- ResXDataNode.cs
- MdiWindowListStrip.cs
- HighlightVisual.cs
- BrushMappingModeValidation.cs
- Configuration.cs
- FileReservationCollection.cs
- ClockGroup.cs
- TraceEventCache.cs
- XmlSerializer.cs
- cache.cs
- KeyPressEvent.cs
- CodeDirectoryCompiler.cs
- PackWebRequest.cs
- TokenCreationException.cs
- TrackingServices.cs
- AuthenticationServiceManager.cs
- DateTimeConverter.cs
- OrderedDictionary.cs
- HScrollProperties.cs
- SimpleHandlerFactory.cs
- TextServicesCompartmentContext.cs
- BinHexEncoder.cs
- DiscoveryDocumentSerializer.cs
- FragmentQuery.cs
- X509ThumbprintKeyIdentifierClause.cs
- AttachmentService.cs
- WorkflowQueueInfo.cs
- SrgsElementFactory.cs
- CompositeActivityTypeDescriptorProvider.cs
- DataGrid.cs
- ValidationErrorEventArgs.cs
- CultureInfoConverter.cs
- HandleCollector.cs
- DnsPermission.cs