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
- PermissionListSet.cs
- precedingquery.cs
- NavigationWindowAutomationPeer.cs
- mongolianshape.cs
- Keyboard.cs
- DrawingVisualDrawingContext.cs
- ImageSourceConverter.cs
- MemberAssignment.cs
- sqlinternaltransaction.cs
- SecurityValidationBehavior.cs
- WebRequestModuleElement.cs
- ConsumerConnectionPointCollection.cs
- SafeMarshalContext.cs
- XmlBindingWorker.cs
- SafeFindHandle.cs
- AbandonedMutexException.cs
- DataSourceCollectionBase.cs
- ExtensionWindowResizeGrip.cs
- InternalMappingException.cs
- _NestedMultipleAsyncResult.cs
- NetNamedPipeSecurity.cs
- HostedTcpTransportManager.cs
- SafeCryptContextHandle.cs
- HtmlInputHidden.cs
- OrderablePartitioner.cs
- SerializerProvider.cs
- EncoderReplacementFallback.cs
- ResourceDefaultValueAttribute.cs
- WebServiceData.cs
- AssemblyAttributesGoHere.cs
- ComEventsHelper.cs
- QuaternionAnimation.cs
- NativeMethods.cs
- SqlCacheDependencyDatabaseCollection.cs
- UrlPropertyAttribute.cs
- FormConverter.cs
- DocumentEventArgs.cs
- PrintDocument.cs
- StyleSheet.cs
- updatecommandorderer.cs
- NumberFunctions.cs
- OutputCacheSection.cs
- IssuanceLicense.cs
- List.cs
- TextParagraphCache.cs
- StateMachineWorkflowDesigner.cs
- DescendantOverDescendantQuery.cs
- BulletedListEventArgs.cs
- MetadataArtifactLoaderFile.cs
- FrugalMap.cs
- WebEvents.cs
- GridViewAutomationPeer.cs
- Version.cs
- CodeTypeReferenceExpression.cs
- ObjectSecurity.cs
- ManualWorkflowSchedulerService.cs
- WindowsGraphics2.cs
- XPathDocumentIterator.cs
- NameService.cs
- ValidatorCompatibilityHelper.cs
- NetworkInformationPermission.cs
- TimeManager.cs
- Membership.cs
- ConfigurationLockCollection.cs
- _Win32.cs
- ReadOnlyAttribute.cs
- ServiceNameElement.cs
- Expression.cs
- FullTextLine.cs
- relpropertyhelper.cs
- DeflateStream.cs
- DataBoundControlAdapter.cs
- SessionEndingCancelEventArgs.cs
- SimpleBitVector32.cs
- XmlSchemaSimpleTypeRestriction.cs
- BasicCellRelation.cs
- TemplatedAdorner.cs
- DataGridRelationshipRow.cs
- DateTimeOffset.cs
- SecondaryIndexList.cs
- SecUtil.cs
- InstanceDescriptor.cs
- ParameterReplacerVisitor.cs
- SqlDelegatedTransaction.cs
- ResourcePermissionBase.cs
- JsonWriter.cs
- RegexStringValidator.cs
- DetailsViewUpdatedEventArgs.cs
- OleDbInfoMessageEvent.cs
- MailFileEditor.cs
- CanonicalizationDriver.cs
- RootDesignerSerializerAttribute.cs
- BitmapEffectDrawingContextWalker.cs
- Mappings.cs
- SelectionEditor.cs
- Pen.cs
- Int32Animation.cs
- EncoderParameter.cs
- AssemblyBuilder.cs
- FontStretchConverter.cs