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
- shaperfactoryquerycachekey.cs
- FlowSwitchDesigner.xaml.cs
- ProcessMessagesAsyncResult.cs
- NavigationPropertySingletonExpression.cs
- And.cs
- XmlPreloadedResolver.cs
- ServiceObjectContainer.cs
- RectIndependentAnimationStorage.cs
- HtmlElementCollection.cs
- CustomAttributeFormatException.cs
- Menu.cs
- SQLDecimal.cs
- TableLayoutPanel.cs
- StringInfo.cs
- InheritanceRules.cs
- SmiRequestExecutor.cs
- ProcessHost.cs
- ModulesEntry.cs
- GridViewRowPresenter.cs
- TraceUtility.cs
- WindowsMenu.cs
- Command.cs
- DbConnectionPoolIdentity.cs
- RIPEMD160.cs
- ResourceKey.cs
- AndMessageFilter.cs
- StringAnimationBase.cs
- HttpInputStream.cs
- QuaternionKeyFrameCollection.cs
- XmlDocumentFragment.cs
- HtmlLink.cs
- ToolBarPanel.cs
- QueryResult.cs
- ObjectListGeneralPage.cs
- DeferredSelectedIndexReference.cs
- HostSecurityManager.cs
- Point3DValueSerializer.cs
- InvalidPropValue.cs
- SQLString.cs
- WebPartConnectionsConnectVerb.cs
- SmiEventStream.cs
- GiveFeedbackEventArgs.cs
- _AcceptOverlappedAsyncResult.cs
- NumericExpr.cs
- PropertyValueChangedEvent.cs
- DockPanel.cs
- ObjectCache.cs
- Rules.cs
- XPathNodeIterator.cs
- TypeDelegator.cs
- NodeFunctions.cs
- ParseElementCollection.cs
- MULTI_QI.cs
- DataGridCommandEventArgs.cs
- MimeWriter.cs
- SharedConnectionWorkflowTransactionService.cs
- ToolStripItemCollection.cs
- DataGridItem.cs
- KeyManager.cs
- XamlClipboardData.cs
- SqlInfoMessageEvent.cs
- SystemColorTracker.cs
- EnumValAlphaComparer.cs
- DelegatedStream.cs
- BaseCollection.cs
- LinearKeyFrames.cs
- TextStore.cs
- WindowPattern.cs
- TransactionFlowBindingElementImporter.cs
- SQLInt16.cs
- SizeIndependentAnimationStorage.cs
- Decorator.cs
- BroadcastEventHelper.cs
- DescendentsWalker.cs
- VerificationAttribute.cs
- autovalidator.cs
- TextEffect.cs
- RectAnimationClockResource.cs
- serverconfig.cs
- CommonGetThemePartSize.cs
- BuildDependencySet.cs
- EncodedStreamFactory.cs
- cryptoapiTransform.cs
- ControlLocalizer.cs
- DataTemplateKey.cs
- AsynchronousChannelMergeEnumerator.cs
- SimpleTextLine.cs
- GifBitmapEncoder.cs
- MergeFilterQuery.cs
- ApplicationException.cs
- VariantWrapper.cs
- IconBitmapDecoder.cs
- UrlPath.cs
- OdbcPermission.cs
- OpacityConverter.cs
- TogglePattern.cs
- SamlDoNotCacheCondition.cs
- SyndicationCategory.cs
- MetabaseServerConfig.cs
- EndOfStreamException.cs