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
- ConvertersCollection.cs
- CellParaClient.cs
- ChannelBuilder.cs
- UntypedNullExpression.cs
- RangeBaseAutomationPeer.cs
- MimeMultiPart.cs
- SchemaMerger.cs
- ProfileEventArgs.cs
- IgnoreDeviceFilterElement.cs
- DynamicILGenerator.cs
- PageAsyncTask.cs
- BasePropertyDescriptor.cs
- StickyNoteAnnotations.cs
- MethodSignatureGenerator.cs
- DrawingDrawingContext.cs
- ToolStripPanelSelectionGlyph.cs
- ChannelRequirements.cs
- ElementNotEnabledException.cs
- ToolStripHighContrastRenderer.cs
- RunWorkerCompletedEventArgs.cs
- FormatterServices.cs
- TypeRefElement.cs
- ItemsControl.cs
- AddInDeploymentState.cs
- MetafileHeaderWmf.cs
- PeerApplication.cs
- MetafileHeaderWmf.cs
- ImageKeyConverter.cs
- DesignerProperties.cs
- TypeExtensionConverter.cs
- ExpressionVisitor.cs
- HistoryEventArgs.cs
- SafeFileMappingHandle.cs
- StopStoryboard.cs
- StatusBarItemAutomationPeer.cs
- BitmapPalettes.cs
- arabicshape.cs
- XmlNodeChangedEventArgs.cs
- ProfileManager.cs
- ListViewSortEventArgs.cs
- EditorPartCollection.cs
- CodeDirectoryCompiler.cs
- InvalidCastException.cs
- Switch.cs
- RotationValidation.cs
- SiteMapNodeItemEventArgs.cs
- BmpBitmapDecoder.cs
- XmlEncodedRawTextWriter.cs
- ServiceTimeoutsElement.cs
- GACMembershipCondition.cs
- BaseCodePageEncoding.cs
- Ref.cs
- TraceContextEventArgs.cs
- ContourSegment.cs
- ParentQuery.cs
- _NTAuthentication.cs
- ExpressionNormalizer.cs
- AdjustableArrowCap.cs
- WindowsListViewItemStartMenu.cs
- CryptographicAttribute.cs
- ButtonPopupAdapter.cs
- XamlSerializerUtil.cs
- precedingquery.cs
- SimpleTextLine.cs
- SystemTcpConnection.cs
- _ProxyChain.cs
- TextCollapsingProperties.cs
- HttpApplicationFactory.cs
- BypassElement.cs
- WebPartEventArgs.cs
- PropertyValueUIItem.cs
- CodeCompileUnit.cs
- StrongNameIdentityPermission.cs
- ElementFactory.cs
- ArgumentOutOfRangeException.cs
- XsltInput.cs
- RunWorkerCompletedEventArgs.cs
- Point3DAnimationBase.cs
- ListViewCommandEventArgs.cs
- DynamicVirtualDiscoSearcher.cs
- TypedReference.cs
- EmptyQuery.cs
- MobileRedirect.cs
- VisualStyleInformation.cs
- CopyNamespacesAction.cs
- Vector3DAnimation.cs
- PersonalizationState.cs
- FormConverter.cs
- TextOnlyOutput.cs
- SurrogateEncoder.cs
- EnumerableValidator.cs
- CharStorage.cs
- RewritingProcessor.cs
- MoveSizeWinEventHandler.cs
- dtdvalidator.cs
- VSWCFServiceContractGenerator.cs
- ListViewGroupConverter.cs
- CryptoApi.cs
- CachedCompositeFamily.cs
- ListViewPagedDataSource.cs