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
- TimeSpanOrInfiniteConverter.cs
- RegexStringValidatorAttribute.cs
- ControlBuilder.cs
- FlowDocument.cs
- DefaultProxySection.cs
- TargetConverter.cs
- ControlCollection.cs
- CodeAccessPermission.cs
- RectangleHotSpot.cs
- XDeferredAxisSource.cs
- MetricEntry.cs
- Helpers.cs
- Menu.cs
- AdditionalEntityFunctions.cs
- querybuilder.cs
- MetabaseServerConfig.cs
- TextElementAutomationPeer.cs
- EditingCommands.cs
- ObjectManager.cs
- TreeNodeBinding.cs
- TypeElement.cs
- TreeViewImageIndexConverter.cs
- PeerApplication.cs
- URLString.cs
- MobileContainerDesigner.cs
- Visual.cs
- DataControlFieldCell.cs
- FrameworkEventSource.cs
- EventListenerClientSide.cs
- Helpers.cs
- Number.cs
- InputLanguageManager.cs
- CaseInsensitiveHashCodeProvider.cs
- PrintDialog.cs
- QilFunction.cs
- WorkflowMarkupSerializer.cs
- DataGridViewCellPaintingEventArgs.cs
- RenderCapability.cs
- ReachUIElementCollectionSerializerAsync.cs
- mediaeventargs.cs
- LinkLabel.cs
- CellTreeNodeVisitors.cs
- DrawListViewColumnHeaderEventArgs.cs
- XmlStringTable.cs
- CultureTableRecord.cs
- DataGridBoolColumn.cs
- DataGridItemCollection.cs
- SiteMapDesignerDataSourceView.cs
- MeasureItemEvent.cs
- TextBoxAutoCompleteSourceConverter.cs
- TableAutomationPeer.cs
- XmlSchemaAnnotation.cs
- Completion.cs
- NamedElement.cs
- BaseUriHelper.cs
- OdbcEnvironmentHandle.cs
- HttpProfileGroupBase.cs
- MsmqDiagnostics.cs
- QueueProcessor.cs
- ScrollChrome.cs
- RichTextBox.cs
- PrivilegeNotHeldException.cs
- XamlToRtfParser.cs
- DesignerLoader.cs
- DockAndAnchorLayout.cs
- SettingsPropertyValueCollection.cs
- VectorAnimationUsingKeyFrames.cs
- MapPathBasedVirtualPathProvider.cs
- XmlDataImplementation.cs
- FrugalMap.cs
- ButtonChrome.cs
- ProxyWebPartManager.cs
- PublisherIdentityPermission.cs
- TypedCompletedAsyncResult.cs
- AnnouncementEventArgs.cs
- PasswordTextContainer.cs
- TransformCryptoHandle.cs
- ColorTransform.cs
- ListDataBindEventArgs.cs
- MemoryPressure.cs
- CodeTypeParameterCollection.cs
- BookmarkUndoUnit.cs
- CngProvider.cs
- ISO2022Encoding.cs
- DiagnosticSection.cs
- EntityContainer.cs
- XmlIlTypeHelper.cs
- MethodRental.cs
- SoapReflectionImporter.cs
- CategoryValueConverter.cs
- TabRenderer.cs
- _RequestCacheProtocol.cs
- StreamWithDictionary.cs
- WsiProfilesElement.cs
- ExpressionPrefixAttribute.cs
- XmlSerializationReader.cs
- OverlappedContext.cs
- GeneralTransformCollection.cs
- DictionaryEditChange.cs
- EventBookmark.cs