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
- IsolatedStoragePermission.cs
- PropertyPathConverter.cs
- MsmqReceiveHelper.cs
- OleDbDataAdapter.cs
- CryptographicAttribute.cs
- SurrogateSelector.cs
- InvalidProgramException.cs
- AuditLogLocation.cs
- PenThreadPool.cs
- ZipIOBlockManager.cs
- InfoCardBaseException.cs
- CustomAttribute.cs
- HtmlShim.cs
- DataKeyCollection.cs
- TypedReference.cs
- BoundConstants.cs
- ElementMarkupObject.cs
- RolePrincipal.cs
- FileDialog.cs
- VolatileEnlistmentMultiplexing.cs
- HttpHandlersInstallComponent.cs
- ScriptResourceAttribute.cs
- DbConnectionPoolGroupProviderInfo.cs
- RecordManager.cs
- Matrix3DStack.cs
- ChainOfDependencies.cs
- DPAPIProtectedConfigurationProvider.cs
- PropertyCondition.cs
- SmtpCommands.cs
- VisualCollection.cs
- RuleSettingsCollection.cs
- HttpResponse.cs
- XmlTextWriter.cs
- ArrayMergeHelper.cs
- FrameworkElement.cs
- RestHandlerFactory.cs
- SessionStateItemCollection.cs
- UInt64Storage.cs
- TextAdaptor.cs
- ButtonChrome.cs
- StickyNote.cs
- KeyManager.cs
- UIElementPropertyUndoUnit.cs
- SiteIdentityPermission.cs
- WorkflowMarkupSerializationManager.cs
- WebControlsSection.cs
- SynchronizedInputProviderWrapper.cs
- TreeViewImageIndexConverter.cs
- WaitHandleCannotBeOpenedException.cs
- RemotingException.cs
- AssemblyInfo.cs
- StylusDownEventArgs.cs
- UserPreferenceChangedEventArgs.cs
- SystemBrushes.cs
- DBConcurrencyException.cs
- DynamicValueConverter.cs
- FormatException.cs
- CheckBoxPopupAdapter.cs
- KernelTypeValidation.cs
- HwndHost.cs
- QilFactory.cs
- errorpatternmatcher.cs
- TraceRecord.cs
- ClientSponsor.cs
- SMSvcHost.cs
- SoapHeaderException.cs
- XmlBoundElement.cs
- WebServiceTypeData.cs
- ToolTipService.cs
- BulletChrome.cs
- CountAggregationOperator.cs
- BasePattern.cs
- FrameworkContentElement.cs
- OracleConnection.cs
- OAVariantLib.cs
- EmbeddedMailObject.cs
- Crc32.cs
- AssemblyInfo.cs
- TextLine.cs
- HtmlInputText.cs
- HyperLinkStyle.cs
- TabPage.cs
- MasterPageParser.cs
- UnhandledExceptionEventArgs.cs
- StickyNoteContentControl.cs
- RuleProcessor.cs
- Profiler.cs
- EntityCollection.cs
- ScrollContentPresenter.cs
- CommunicationObject.cs
- CommandHelpers.cs
- ErrorHandler.cs
- RadioButtonList.cs
- BmpBitmapEncoder.cs
- SecurityElement.cs
- BackgroundFormatInfo.cs
- Color.cs
- LinkArea.cs
- AdRotator.cs
- AppDomainAttributes.cs