Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- PerfCounters.cs
- ToolStripSettings.cs
- BinaryParser.cs
- IgnoreFlushAndCloseStream.cs
- URLString.cs
- DataBindingHandlerAttribute.cs
- NavigationHelper.cs
- EncodingNLS.cs
- ComUdtElementCollection.cs
- CmsInterop.cs
- MethodExecutor.cs
- TreeViewImageIndexConverter.cs
- ProtocolsConfigurationHandler.cs
- RegexMatch.cs
- SelectionChangedEventArgs.cs
- DesignerToolStripControlHost.cs
- TakeOrSkipQueryOperator.cs
- LinearGradientBrush.cs
- ValidationService.cs
- ArrayElementGridEntry.cs
- ToolStripLocationCancelEventArgs.cs
- HttpContext.cs
- WebConvert.cs
- TextServicesContext.cs
- DemultiplexingDispatchMessageFormatter.cs
- KeyPullup.cs
- EllipticalNodeOperations.cs
- propertytag.cs
- LinkedList.cs
- HtmlGenericControl.cs
- LoginName.cs
- Polyline.cs
- XPathCompiler.cs
- ItemChangedEventArgs.cs
- FixedHighlight.cs
- EncryptedXml.cs
- SystemFonts.cs
- ContentType.cs
- WindowsIdentity.cs
- BadImageFormatException.cs
- ContentPresenter.cs
- CompilerParameters.cs
- FlowDocumentPaginator.cs
- PolicyDesigner.cs
- GeneralTransform3D.cs
- CacheEntry.cs
- SmtpDigestAuthenticationModule.cs
- TreeBuilderXamlTranslator.cs
- SymmetricSecurityProtocol.cs
- SystemIPv6InterfaceProperties.cs
- Listen.cs
- BaseDataBoundControlDesigner.cs
- WmlCalendarAdapter.cs
- CollectionView.cs
- CanonicalFormWriter.cs
- InitializationEventAttribute.cs
- ObjectSet.cs
- StsCommunicationException.cs
- VersionUtil.cs
- DefaultEventAttribute.cs
- ButtonColumn.cs
- SqlDataSource.cs
- CngUIPolicy.cs
- WindowsStatusBar.cs
- ObjectListItem.cs
- ApplicationHost.cs
- SettingsBindableAttribute.cs
- XmlComplianceUtil.cs
- ConfigXmlText.cs
- Base64Stream.cs
- InputBindingCollection.cs
- BaseTemplateParser.cs
- NullableDecimalMinMaxAggregationOperator.cs
- XPathQilFactory.cs
- IEnumerable.cs
- ChannelManagerHelpers.cs
- NetworkStream.cs
- DbParameterHelper.cs
- RuntimeVariablesExpression.cs
- UpdatePanelControlTrigger.cs
- SqlFacetAttribute.cs
- ResourceWriter.cs
- MessageBox.cs
- ListBase.cs
- SqlGatherConsumedAliases.cs
- OLEDB_Enum.cs
- EntityCommandExecutionException.cs
- HtmlControlPersistable.cs
- DataGridViewCellPaintingEventArgs.cs
- DiagnosticEventProvider.cs
- SortedSetDebugView.cs
- NativeCppClassAttribute.cs
- TextParagraphCache.cs
- ServiceReference.cs
- ChangePasswordAutoFormat.cs
- StylusPlugInCollection.cs
- FlagsAttribute.cs
- ControlPaint.cs
- XXXInfos.cs
- FloatSumAggregationOperator.cs