Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- AuthenticationService.cs
- CacheDependency.cs
- CapabilitiesRule.cs
- PassportIdentity.cs
- HybridCollection.cs
- ProviderUtil.cs
- StyleTypedPropertyAttribute.cs
- OdbcUtils.cs
- ProbeDuplexCD1AsyncResult.cs
- DataContractAttribute.cs
- WebRequest.cs
- ListControl.cs
- PropertyConverter.cs
- WindowsContainer.cs
- ContextMenu.cs
- RedBlackList.cs
- MetadataPropertyvalue.cs
- HtmlTextArea.cs
- CacheVirtualItemsEvent.cs
- ToolBar.cs
- WebUtility.cs
- ValidationErrorEventArgs.cs
- ResolveDuplexAsyncResult.cs
- PagesSection.cs
- ISessionStateStore.cs
- RegexMatch.cs
- RadialGradientBrush.cs
- SecurityProtocolFactory.cs
- KeyNotFoundException.cs
- wgx_commands.cs
- ComboBoxAutomationPeer.cs
- Popup.cs
- DataServiceResponse.cs
- Misc.cs
- ObjectStateFormatter.cs
- DataGridViewRowsAddedEventArgs.cs
- ColumnMap.cs
- ListViewGroup.cs
- VerticalAlignConverter.cs
- AsyncPostBackErrorEventArgs.cs
- ConcurrentQueue.cs
- DataRowView.cs
- PointUtil.cs
- ListBoxChrome.cs
- MatrixTransform3D.cs
- ServiceBehaviorElement.cs
- TraceHandlerErrorFormatter.cs
- DependencyPropertyChangedEventArgs.cs
- HostingEnvironment.cs
- EncoderNLS.cs
- COM2TypeInfoProcessor.cs
- SqlUtil.cs
- ListBox.cs
- SmiEventSink_DeferedProcessing.cs
- StdRegProviderWrapper.cs
- ComponentChangingEvent.cs
- BasicBrowserDialog.designer.cs
- DeviceContext.cs
- DrawingCollection.cs
- Transform3D.cs
- infer.cs
- WpfWebRequestHelper.cs
- IListConverters.cs
- EventProxy.cs
- ReachVisualSerializer.cs
- TextContainerChangedEventArgs.cs
- WsdlInspector.cs
- XmlSchemaComplexContentRestriction.cs
- MailWriter.cs
- KeyEventArgs.cs
- SecurityDescriptor.cs
- SystemIcmpV4Statistics.cs
- IPAddress.cs
- TimeSpanMinutesConverter.cs
- BlobPersonalizationState.cs
- SQLByte.cs
- XsltException.cs
- CodeBlockBuilder.cs
- EditorZoneDesigner.cs
- XsdCachingReader.cs
- ConfigurationManagerInternalFactory.cs
- ConnectionAcceptor.cs
- JumpList.cs
- ExpressionBindingCollection.cs
- TextElementEnumerator.cs
- ChildrenQuery.cs
- Content.cs
- ProfileGroupSettings.cs
- LayoutTable.cs
- DiagnosticsConfigurationHandler.cs
- UnSafeCharBuffer.cs
- Semaphore.cs
- SqlCommandSet.cs
- OracleBinary.cs
- ImageMapEventArgs.cs
- WpfWebRequestHelper.cs
- NonBatchDirectoryCompiler.cs
- ColorDialog.cs
- MappingModelBuildProvider.cs
- XmlSubtreeReader.cs