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
- DetailsViewRowCollection.cs
- XamlStream.cs
- XmlQueryContext.cs
- BindingMemberInfo.cs
- HttpSessionStateBase.cs
- Operator.cs
- UTF8Encoding.cs
- CodeMemberMethod.cs
- WindowHideOrCloseTracker.cs
- DataGridHeaderBorder.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- CacheHelper.cs
- DrawingGroupDrawingContext.cs
- QueueProcessor.cs
- WmiEventSink.cs
- Error.cs
- SQLBinary.cs
- QueryContinueDragEventArgs.cs
- Html32TextWriter.cs
- ProfileSection.cs
- AppSecurityManager.cs
- ProcessHostFactoryHelper.cs
- storagemappingitemcollection.viewdictionary.cs
- ADRoleFactoryConfiguration.cs
- Vector3DValueSerializer.cs
- GACMembershipCondition.cs
- LayoutUtils.cs
- MaskInputRejectedEventArgs.cs
- ScaleTransform.cs
- ProtocolInformationWriter.cs
- UnsafeNativeMethods.cs
- ZipFileInfoCollection.cs
- FrameworkContentElement.cs
- SystemWebSectionGroup.cs
- CompareInfo.cs
- DataSourceControlBuilder.cs
- smtpconnection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- StorageMappingFragment.cs
- _emptywebproxy.cs
- UnsafeNativeMethods.cs
- TabItemWrapperAutomationPeer.cs
- OdbcFactory.cs
- VirtualizingStackPanel.cs
- BrowserDefinition.cs
- OperatingSystem.cs
- CodeTypeReferenceExpression.cs
- CommandHelpers.cs
- SafeRegistryHandle.cs
- CachedCompositeFamily.cs
- cryptoapiTransform.cs
- ActivityBindForm.Designer.cs
- TypeProvider.cs
- PlainXmlWriter.cs
- Int64AnimationBase.cs
- ControlBindingsCollection.cs
- ClassImporter.cs
- TypeDefinition.cs
- SchemaImporterExtensionElement.cs
- BitmapEffectvisualstate.cs
- SerializationTrace.cs
- HttpConfigurationSystem.cs
- HitTestParameters3D.cs
- ValueSerializer.cs
- _ProxyRegBlob.cs
- NamespaceInfo.cs
- XPathNodeInfoAtom.cs
- ObjectReferenceStack.cs
- TypeGeneratedEventArgs.cs
- HWStack.cs
- CollectionType.cs
- TemplateControlParser.cs
- XmlNotation.cs
- PersistChildrenAttribute.cs
- TextRange.cs
- LifetimeServices.cs
- InputMethodStateTypeInfo.cs
- Int64AnimationUsingKeyFrames.cs
- ToolStripOverflowButton.cs
- ProjectionPathBuilder.cs
- IndexedWhereQueryOperator.cs
- WeakReference.cs
- TaskDesigner.cs
- SetIndexBinder.cs
- BreakRecordTable.cs
- GeneralTransformCollection.cs
- StreamAsIStream.cs
- StorageEntityContainerMapping.cs
- VisualBasicSettings.cs
- TransformerConfigurationWizardBase.cs
- ListViewGroupConverter.cs
- SAPICategories.cs
- ValidationResults.cs
- TwoPhaseCommit.cs
- DBSchemaRow.cs
- NamespaceList.cs
- QueryStoreStatusRequest.cs
- FileSystemInfo.cs
- TraceInternal.cs
- OrderingInfo.cs