Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntityDesign / 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.Entity.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 = null; private string _targetFilePath = null; internal LazyTextWriterCreator(TextWriter writer) { Debug.Assert(writer != null, "writer parameter is null"); _ownTextWriter = false; _writer = writer; } internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } 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.Entity.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 = null; private string _targetFilePath = null; internal LazyTextWriterCreator(TextWriter writer) { Debug.Assert(writer != null, "writer parameter is null"); _ownTextWriter = false; _writer = writer; } internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } 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
- ReceiveMessageContent.cs
- XhtmlBasicPhoneCallAdapter.cs
- GridView.cs
- ClientSession.cs
- CalendarDay.cs
- DateTimeAutomationPeer.cs
- AttributeProviderAttribute.cs
- FixedSOMTableCell.cs
- CounterSample.cs
- BCryptHashAlgorithm.cs
- DefaultValueConverter.cs
- Label.cs
- UpdateException.cs
- MenuItemBinding.cs
- ExpressionNormalizer.cs
- XmlNamespaceMappingCollection.cs
- ChtmlTextWriter.cs
- entityreference_tresulttype.cs
- DPTypeDescriptorContext.cs
- TraceListeners.cs
- OracleCommandSet.cs
- DataContractSerializer.cs
- PropertyEntry.cs
- DispatcherTimer.cs
- ProofTokenCryptoHandle.cs
- SmiGettersStream.cs
- ShapeTypeface.cs
- PrintController.cs
- CodeCompiler.cs
- FormsAuthenticationUserCollection.cs
- PersistChildrenAttribute.cs
- TableRowCollection.cs
- StringFunctions.cs
- PointHitTestResult.cs
- ApplicationSecurityManager.cs
- InvokeHandlers.cs
- RtfControls.cs
- RefreshResponseInfo.cs
- TemplateComponentConnector.cs
- TemplateBindingExtension.cs
- CollectionChangeEventArgs.cs
- PartBasedPackageProperties.cs
- EntitySqlQueryBuilder.cs
- Rule.cs
- ConfigurationConverterBase.cs
- CommandTreeTypeHelper.cs
- Formatter.cs
- OpenFileDialog.cs
- BitmapFrameDecode.cs
- PartitionResolver.cs
- AssemblyBuilderData.cs
- ListParaClient.cs
- InfiniteTimeSpanConverter.cs
- GPPOINTF.cs
- VirtualPath.cs
- InternalEnumValidatorAttribute.cs
- StrongTypingException.cs
- DispatcherExceptionEventArgs.cs
- Enlistment.cs
- ResolveNameEventArgs.cs
- DoubleLinkList.cs
- CodeTypeOfExpression.cs
- Activity.cs
- DataGridViewHeaderCell.cs
- BoolLiteral.cs
- ClosableStream.cs
- ProxyWebPartManager.cs
- ImageField.cs
- PrivacyNoticeElement.cs
- UnsafeNativeMethodsTablet.cs
- WebPartAddingEventArgs.cs
- BehaviorEditorPart.cs
- TextComposition.cs
- ItemChangedEventArgs.cs
- PreDigestedSignedInfo.cs
- SoapFormatterSinks.cs
- RichTextBox.cs
- DataBoundControl.cs
- RegistrySecurity.cs
- Model3D.cs
- VersionedStream.cs
- MsdtcClusterUtils.cs
- XamlFxTrace.cs
- WebPartActionVerb.cs
- XmlDataLoader.cs
- EllipseGeometry.cs
- RequestCacheManager.cs
- ProgressiveCrcCalculatingStream.cs
- SpanIndex.cs
- RectConverter.cs
- ExecutionContext.cs
- KeyNameIdentifierClause.cs
- HtmlHistory.cs
- StatusBarAutomationPeer.cs
- PathFigure.cs
- UnwrappedTypesXmlSerializerManager.cs
- SizeConverter.cs
- Vector3DConverter.cs
- PaintValueEventArgs.cs
- FactoryMaker.cs