Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / LazyTextWriterCreator.cs / 2 / 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
- ToolStripProfessionalLowResolutionRenderer.cs
- Encoding.cs
- ImageDrawing.cs
- ContentTextAutomationPeer.cs
- sqlnorm.cs
- GeneralTransform.cs
- AsmxEndpointPickerExtension.cs
- ErrorCodes.cs
- PanningMessageFilter.cs
- InputScopeManager.cs
- SqlExpander.cs
- PersistencePipeline.cs
- AssociationEndMember.cs
- TextProviderWrapper.cs
- SqlNotificationRequest.cs
- RouteParametersHelper.cs
- WaitHandleCannotBeOpenedException.cs
- HtmlWindow.cs
- WmpBitmapDecoder.cs
- SudsWriter.cs
- ExtendLockCommand.cs
- Int64.cs
- RepeaterItemCollection.cs
- VScrollBar.cs
- TemplateKeyConverter.cs
- EntityPropertyMappingAttribute.cs
- DesignerActionTextItem.cs
- LogicalExpressionEditor.cs
- WpfWebRequestHelper.cs
- GuidelineSet.cs
- AttributeCollection.cs
- ScrollProperties.cs
- AssemblyAttributes.cs
- ModelFunctionTypeElement.cs
- ScaleTransform3D.cs
- DataIdProcessor.cs
- AddInAttribute.cs
- LoginCancelEventArgs.cs
- SizeAnimationBase.cs
- TextBoxBase.cs
- ISessionStateStore.cs
- TrustManagerPromptUI.cs
- CustomAttribute.cs
- AnonymousIdentificationModule.cs
- ProviderCollection.cs
- ProcessHostConfigUtils.cs
- ConfigXmlElement.cs
- IPAddress.cs
- ApplicationException.cs
- ListBindingHelper.cs
- HMACSHA256.cs
- EntityDesignPluralizationHandler.cs
- XmlSchemaSimpleContentExtension.cs
- QuaternionAnimationBase.cs
- ViewGenResults.cs
- ValidationErrorInfo.cs
- SpecialNameAttribute.cs
- WorkflowWebService.cs
- HtmlMeta.cs
- FontStretches.cs
- StreamResourceInfo.cs
- XhtmlBasicValidatorAdapter.cs
- CreateUserErrorEventArgs.cs
- EntryPointNotFoundException.cs
- NavigationWindowAutomationPeer.cs
- XmlEventCache.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ImageListImage.cs
- GradientStop.cs
- BitmapEffectGroup.cs
- DataObjectFieldAttribute.cs
- followingquery.cs
- KeyValueConfigurationCollection.cs
- OdbcUtils.cs
- configsystem.cs
- GetPageCompletedEventArgs.cs
- WebPartPersonalization.cs
- Policy.cs
- TrackingProfileSerializer.cs
- ISO2022Encoding.cs
- XmlArrayItemAttribute.cs
- XmlReturnWriter.cs
- AppDomainManager.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- FloatAverageAggregationOperator.cs
- SeparatorAutomationPeer.cs
- StrokeNodeEnumerator.cs
- SqlTypeSystemProvider.cs
- PersonalizationProviderCollection.cs
- ReferencedAssembly.cs
- ItemsPresenter.cs
- WindowsListViewItemCheckBox.cs
- PropertyMetadata.cs
- UIInitializationException.cs
- StorageAssociationSetMapping.cs
- ComponentChangingEvent.cs
- XPathSingletonIterator.cs
- UriTemplatePathSegment.cs
- ClientScriptItem.cs
- PrintController.cs