Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / LazyTextWriterCreator.cs / 1305376 / LazyTextWriterCreator.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Diagnostics; using System.IO; 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(); } GC.SuppressFinalize(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Diagnostics; using System.IO; 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(); } GC.SuppressFinalize(this); } } } // 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
- IDispatchConstantAttribute.cs
- ListDictionaryInternal.cs
- WebConfigurationManager.cs
- PathGeometry.cs
- HtmlTernaryTree.cs
- MergeLocalizationDirectives.cs
- DescendentsWalker.cs
- ScrollChangedEventArgs.cs
- BitmapEffectInputConnector.cs
- PlatformCulture.cs
- GenericIdentity.cs
- SafeHandles.cs
- HostSecurityManager.cs
- PointLightBase.cs
- FlagsAttribute.cs
- ScriptManagerProxy.cs
- ObjectHandle.cs
- XmlCompatibilityReader.cs
- QueryCacheKey.cs
- ImagingCache.cs
- MetadataItem_Static.cs
- EntityCommandDefinition.cs
- SpeakProgressEventArgs.cs
- FileCodeGroup.cs
- FileLoadException.cs
- CatchBlock.cs
- PersonalizationState.cs
- DefinitionUpdate.cs
- DNS.cs
- BackStopAuthenticationModule.cs
- UIElementParagraph.cs
- CalloutQueueItem.cs
- MetadataProperty.cs
- ExtensionDataReader.cs
- DataTransferEventArgs.cs
- RegexBoyerMoore.cs
- COAUTHINFO.cs
- AssemblyBuilder.cs
- SchemaInfo.cs
- RepeaterItemCollection.cs
- SerializationAttributes.cs
- LocatorPartList.cs
- Globals.cs
- TextDecorations.cs
- ConditionValidator.cs
- Effect.cs
- BuilderPropertyEntry.cs
- WSMessageEncoding.cs
- RewritingProcessor.cs
- EventWaitHandle.cs
- LateBoundChannelParameterCollection.cs
- XmlDocumentFragment.cs
- QueryCacheKey.cs
- CollectionDataContract.cs
- DataSetFieldSchema.cs
- IisTraceWebEventProvider.cs
- XmlILModule.cs
- ViewUtilities.cs
- InputLanguageCollection.cs
- OdbcCommandBuilder.cs
- OpenTypeLayout.cs
- DataGridViewLinkCell.cs
- SqlDelegatedTransaction.cs
- NestedContainer.cs
- XmlSchemaObjectTable.cs
- ErrorWrapper.cs
- __Filters.cs
- WindowsRebar.cs
- XmlMapping.cs
- SQLInt16Storage.cs
- StateWorkerRequest.cs
- MaskedTextProvider.cs
- DataGridColumnHeaderAutomationPeer.cs
- MappingException.cs
- RelatedView.cs
- SHA1.cs
- StateInitialization.cs
- SqlCharStream.cs
- TableProviderWrapper.cs
- Container.cs
- InternalRelationshipCollection.cs
- SystemSounds.cs
- BamlRecordWriter.cs
- NamedServiceModelExtensionCollectionElement.cs
- SessionPageStatePersister.cs
- Rules.cs
- StringStorage.cs
- Compress.cs
- SafeCertificateContext.cs
- RefreshEventArgs.cs
- FileNotFoundException.cs
- CopyCodeAction.cs
- CursorInteropHelper.cs
- WindowsTreeView.cs
- TransformerInfoCollection.cs
- BindingMAnagerBase.cs
- UnsafeNativeMethodsTablet.cs
- Cursor.cs
- StreamReader.cs
- BufferedReadStream.cs