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
- TranslateTransform3D.cs
- BitVector32.cs
- SpeechRecognitionEngine.cs
- XmlnsDictionary.cs
- EnumCodeDomSerializer.cs
- WorkflowServiceOperationListItem.cs
- InvalidPrinterException.cs
- documentation.cs
- RegisteredScript.cs
- Variant.cs
- DeferredSelectedIndexReference.cs
- VersionedStreamOwner.cs
- PersonalizablePropertyEntry.cs
- XmlSchemaAttribute.cs
- IISUnsafeMethods.cs
- AppDomainProtocolHandler.cs
- XamlFxTrace.cs
- TextEffectCollection.cs
- ScopeCompiler.cs
- PackagingUtilities.cs
- Activator.cs
- Frame.cs
- querybuilder.cs
- XPathDocument.cs
- SQLGuidStorage.cs
- SqlInternalConnectionSmi.cs
- RunInstallerAttribute.cs
- Qualifier.cs
- LinqDataSourceHelper.cs
- RtfToXamlReader.cs
- ManifestResourceInfo.cs
- _HeaderInfoTable.cs
- XPathMessageFilterElementCollection.cs
- SqlGatherProducedAliases.cs
- CharacterShapingProperties.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- TextRangeEdit.cs
- ClipboardData.cs
- sortedlist.cs
- MethodCallTranslator.cs
- FieldNameLookup.cs
- MetadataExchangeBindings.cs
- MediaElementAutomationPeer.cs
- EventEntry.cs
- TextServicesLoader.cs
- TransformDescriptor.cs
- InstanceDescriptor.cs
- PenLineJoinValidation.cs
- TextPenaltyModule.cs
- WithStatement.cs
- ProfileSettingsCollection.cs
- SspiNegotiationTokenAuthenticatorState.cs
- ScrollChangedEventArgs.cs
- MdiWindowListItemConverter.cs
- SQLBinary.cs
- Privilege.cs
- NamespaceDisplayAutomationPeer.cs
- TextFindEngine.cs
- RowTypeElement.cs
- VirtualPathUtility.cs
- SrgsItemList.cs
- PerfCounters.cs
- QueryStringConverter.cs
- CategoryAttribute.cs
- DecimalConstantAttribute.cs
- Help.cs
- ObjectSet.cs
- MouseWheelEventArgs.cs
- parserscommon.cs
- ResourceKey.cs
- SimpleTextLine.cs
- CompiledAction.cs
- PostBackTrigger.cs
- Switch.cs
- MappingException.cs
- FormViewInsertedEventArgs.cs
- NameValueSectionHandler.cs
- BreakRecordTable.cs
- InvalidPropValue.cs
- HMACRIPEMD160.cs
- ApplicationInfo.cs
- AppDomainFactory.cs
- BaseTypeViewSchema.cs
- ProxyGenerator.cs
- DebugManager.cs
- XsdDateTime.cs
- GridSplitterAutomationPeer.cs
- RightsManagementInformation.cs
- StorageMappingFragment.cs
- TdsParserSafeHandles.cs
- RouteValueDictionary.cs
- Section.cs
- BinaryHeap.cs
- __ComObject.cs
- LogPolicy.cs
- _SslStream.cs
- ObjectStateFormatter.cs
- UnmanagedMemoryAccessor.cs
- EntityContainer.cs
- SqlDataAdapter.cs