Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataWeb / 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.Services.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; private string _targetFilePath; internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal LazyTextWriterCreator(TextWriter writer) { _writer = writer; } 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.Services.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; private string _targetFilePath; internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal LazyTextWriterCreator(TextWriter writer) { _writer = writer; } 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
- SocketInformation.cs
- AVElementHelper.cs
- PermissionSetTriple.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- OptimizedTemplateContent.cs
- HyperLinkField.cs
- TextBoxBase.cs
- VectorValueSerializer.cs
- MouseEvent.cs
- ProxyGenerationError.cs
- PresentationTraceSources.cs
- ScriptResourceHandler.cs
- HtmlWindowCollection.cs
- DeploymentSection.cs
- ListViewPagedDataSource.cs
- PropertyStore.cs
- WorkflowServiceNamespace.cs
- WSTransactionSection.cs
- ExclusiveHandle.cs
- ServiceOperationHelpers.cs
- ClientTarget.cs
- TraceHandler.cs
- HandleRef.cs
- InteropAutomationProvider.cs
- ValueSerializerAttribute.cs
- BridgeDataReader.cs
- EntitySetDataBindingList.cs
- BidOverLoads.cs
- EventManager.cs
- COM2ComponentEditor.cs
- FixedSOMFixedBlock.cs
- DynamicValidatorEventArgs.cs
- HostSecurityManager.cs
- ReadOnlyTernaryTree.cs
- XmlBinaryReader.cs
- MbpInfo.cs
- DesignerDataSourceView.cs
- Command.cs
- TraversalRequest.cs
- HtmlFormParameterWriter.cs
- GridViewItemAutomationPeer.cs
- WmpBitmapEncoder.cs
- Stack.cs
- ExceptionHelpers.cs
- SafeCoTaskMem.cs
- CodeTypeReferenceExpression.cs
- UnmanagedMemoryAccessor.cs
- ThreadExceptionDialog.cs
- CompilationSection.cs
- __ComObject.cs
- WebPartHelpVerb.cs
- SchemaNamespaceManager.cs
- validationstate.cs
- RegexCode.cs
- ActivityExecutionContextCollection.cs
- ColumnBinding.cs
- DocumentXPathNavigator.cs
- TypeBuilderInstantiation.cs
- LabelLiteral.cs
- SupportsPreviewControlAttribute.cs
- OleDbError.cs
- PageMediaSize.cs
- StringUtil.cs
- ManagementEventWatcher.cs
- HttpProfileBase.cs
- CacheMemory.cs
- srgsitem.cs
- ConfigurationLockCollection.cs
- EpmTargetTree.cs
- DynamicRendererThreadManager.cs
- CalculatedColumn.cs
- EventDescriptorCollection.cs
- ScriptModule.cs
- PathSegmentCollection.cs
- Int32Collection.cs
- GlyphsSerializer.cs
- ScriptingWebServicesSectionGroup.cs
- Soap12ProtocolImporter.cs
- CompressedStack.cs
- Command.cs
- SiteMapDataSourceView.cs
- TableRowCollection.cs
- SymmetricAlgorithm.cs
- WindowPatternIdentifiers.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- DispatchWrapper.cs
- RegisteredHiddenField.cs
- DbParameterHelper.cs
- SharedPersonalizationStateInfo.cs
- PropertyCollection.cs
- MutexSecurity.cs
- CacheModeConverter.cs
- ReliableReplySessionChannel.cs
- TrackingProfileDeserializationException.cs
- QuotedPrintableStream.cs
- DrawingImage.cs
- SystemColors.cs
- MarginCollapsingState.cs
- FloatMinMaxAggregationOperator.cs
- ClrPerspective.cs