Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ColumnMapCopier.cs
- XmlDictionaryString.cs
- SqlParameter.cs
- RTLAwareMessageBox.cs
- GuidelineCollection.cs
- ButtonPopupAdapter.cs
- ResourceContainer.cs
- DataGridViewIntLinkedList.cs
- PointHitTestResult.cs
- QueryAccessibilityHelpEvent.cs
- Win32SafeHandles.cs
- EncryptedKey.cs
- SerialErrors.cs
- Odbc32.cs
- WebFaultException.cs
- InvokeMemberBinder.cs
- XmlDataSourceView.cs
- HwndSource.cs
- TransactionScope.cs
- UserControlAutomationPeer.cs
- LineVisual.cs
- Duration.cs
- _CacheStreams.cs
- CodeTypeOfExpression.cs
- DbConnectionPoolIdentity.cs
- UIElementHelper.cs
- AsyncCompletedEventArgs.cs
- RuleEngine.cs
- oledbmetadatacolumnnames.cs
- SqlMethodCallConverter.cs
- WebBrowserContainer.cs
- MessageDesigner.cs
- Content.cs
- ObjectContext.cs
- SingleObjectCollection.cs
- BasicViewGenerator.cs
- InternalConfigHost.cs
- EncoderParameters.cs
- DictionaryEntry.cs
- RunClient.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- FontConverter.cs
- WebServiceClientProxyGenerator.cs
- BufferedGraphicsContext.cs
- XmlEncodedRawTextWriter.cs
- WebPartDisplayModeCancelEventArgs.cs
- StylusPlugin.cs
- IpcChannelHelper.cs
- ProfilePropertyNameValidator.cs
- PropertyGeneratedEventArgs.cs
- SecUtil.cs
- Converter.cs
- SettingsPropertyValueCollection.cs
- ClientData.cs
- ReadOnlyDataSourceView.cs
- RtfNavigator.cs
- FieldInfo.cs
- ComPlusThreadInitializer.cs
- PeerHopCountAttribute.cs
- ChildChangedEventArgs.cs
- BrowserDefinitionCollection.cs
- CodeSnippetTypeMember.cs
- Command.cs
- SerializationInfo.cs
- ProviderConnectionPoint.cs
- MappingSource.cs
- DataRecordInfo.cs
- HandleCollector.cs
- WorkflowServiceInstance.cs
- BoundingRectTracker.cs
- ExtensibleSyndicationObject.cs
- Utils.cs
- MappedMetaModel.cs
- WebEventCodes.cs
- ModelItemExtensions.cs
- GridItemCollection.cs
- AssemblyBuilder.cs
- SqlUserDefinedAggregateAttribute.cs
- CheckableControlBaseAdapter.cs
- Bits.cs
- ToolboxDataAttribute.cs
- OutputCacheProfileCollection.cs
- CapiSymmetricAlgorithm.cs
- RunClient.cs
- PixelShader.cs
- CultureInfoConverter.cs
- StateManagedCollection.cs
- RequestUriProcessor.cs
- BinaryFormatter.cs
- ListViewTableRow.cs
- XmlDataContract.cs
- CrossAppDomainChannel.cs
- BindingExpression.cs
- EventMappingSettingsCollection.cs
- SecurityTokenProvider.cs
- UriScheme.cs
- JsonFormatReaderGenerator.cs
- loginstatus.cs
- sapiproxy.cs
- EditingCommands.cs