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
- FileEnumerator.cs
- UserControlAutomationPeer.cs
- ResourceSetExpression.cs
- AxisAngleRotation3D.cs
- UIElementCollection.cs
- ObjectTokenCategory.cs
- TabControl.cs
- FileDialogPermission.cs
- CodeTypeDeclarationCollection.cs
- DataSourceXmlSubItemAttribute.cs
- AstNode.cs
- CanonicalizationDriver.cs
- DesignerTransaction.cs
- System.Data.OracleClient_BID.cs
- MenuItemBindingCollection.cs
- URLAttribute.cs
- WindowsAuthenticationModule.cs
- LabelTarget.cs
- SafeNativeMethods.cs
- UnsafeNativeMethods.cs
- HScrollProperties.cs
- ToolboxBitmapAttribute.cs
- TagNameToTypeMapper.cs
- StateBag.cs
- PagerSettings.cs
- ContentPlaceHolder.cs
- DataExpression.cs
- TlsnegoTokenAuthenticator.cs
- XamlContextStack.cs
- AppDomainEvidenceFactory.cs
- ExceptionRoutedEventArgs.cs
- LazyTextWriterCreator.cs
- CodeMemberProperty.cs
- ElementAction.cs
- BinaryNode.cs
- JpegBitmapEncoder.cs
- XPathCompileException.cs
- GatewayDefinition.cs
- ServiceModelDictionary.cs
- DesignerRegionCollection.cs
- loginstatus.cs
- CanExecuteRoutedEventArgs.cs
- SchemaExporter.cs
- SmtpNegotiateAuthenticationModule.cs
- StylusPointPropertyId.cs
- CodeIterationStatement.cs
- TextTreeFixupNode.cs
- RegistrySecurity.cs
- XmlDataSource.cs
- EventQueueState.cs
- DigitalSignature.cs
- PointLightBase.cs
- RotateTransform3D.cs
- Color.cs
- IISUnsafeMethods.cs
- TableStyle.cs
- TreeViewDataItemAutomationPeer.cs
- UInt32Storage.cs
- SqlNodeAnnotations.cs
- TextDecorationCollection.cs
- DispatcherHookEventArgs.cs
- GraphicsPathIterator.cs
- AccessText.cs
- DragCompletedEventArgs.cs
- DateTimeOffsetAdapter.cs
- AsyncCodeActivityContext.cs
- ScalarType.cs
- ModelItemCollection.cs
- ExpressionList.cs
- SimpleRecyclingCache.cs
- ObjectComplexPropertyMapping.cs
- AnnotationDocumentPaginator.cs
- ActivityExecutor.cs
- HiddenFieldPageStatePersister.cs
- WebRequestModuleElementCollection.cs
- EncryptedXml.cs
- BinaryCommonClasses.cs
- XmlSchemaSubstitutionGroup.cs
- SessionStateItemCollection.cs
- Exceptions.cs
- MetadataSerializer.cs
- TaskHelper.cs
- ValueUtilsSmi.cs
- TagMapInfo.cs
- Queue.cs
- OdbcConnectionOpen.cs
- ItemChangedEventArgs.cs
- Point4D.cs
- ValueUnavailableException.cs
- PresentationTraceSources.cs
- SmtpFailedRecipientException.cs
- ZipIOExtraFieldElement.cs
- ReferentialConstraint.cs
- DocobjHost.cs
- HtmlUtf8RawTextWriter.cs
- ImageCodecInfo.cs
- Vector3DAnimation.cs
- CompositeControl.cs
- HealthMonitoringSection.cs
- _NestedSingleAsyncResult.cs