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
- EventsTab.cs
- AccessKeyManager.cs
- Fx.cs
- HeaderedContentControl.cs
- OAVariantLib.cs
- XmlnsCache.cs
- BrowserCapabilitiesFactory35.cs
- PersistChildrenAttribute.cs
- Site.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- CompensationParticipant.cs
- ServiceOperationInfoTypeConverter.cs
- EditorPart.cs
- TreeNode.cs
- CapabilitiesPattern.cs
- VolatileEnlistmentMultiplexing.cs
- XmlSignificantWhitespace.cs
- tibetanshape.cs
- RangeBase.cs
- XhtmlBasicImageAdapter.cs
- ObjectViewEntityCollectionData.cs
- RectangleConverter.cs
- EventLevel.cs
- comcontractssection.cs
- CustomAttribute.cs
- Tokenizer.cs
- RotateTransform3D.cs
- ClientRequest.cs
- Form.cs
- PageCatalogPart.cs
- XmlSchemaElement.cs
- WebConfigurationFileMap.cs
- ParserHooks.cs
- VisualCollection.cs
- InfoCardArgumentException.cs
- MetadataHelper.cs
- TypeUtils.cs
- RefreshEventArgs.cs
- UInt64Storage.cs
- ToolStripItemTextRenderEventArgs.cs
- ListViewAutomationPeer.cs
- SHA384.cs
- SimpleTypeResolver.cs
- SecurityContext.cs
- InvokeHandlers.cs
- HtmlMeta.cs
- BoundPropertyEntry.cs
- TypeBrowserDialog.cs
- AppearanceEditorPart.cs
- GuidConverter.cs
- ResourceReader.cs
- VersionPair.cs
- TrackingServices.cs
- XmlQualifiedNameTest.cs
- XmlSchemaGroup.cs
- DbConnectionPoolGroupProviderInfo.cs
- CodeMemberField.cs
- StringOutput.cs
- Thickness.cs
- TagPrefixInfo.cs
- ChildTable.cs
- AbstractSvcMapFileLoader.cs
- XPathQueryGenerator.cs
- _LocalDataStore.cs
- AncestorChangedEventArgs.cs
- CheckBoxBaseAdapter.cs
- OptionalColumn.cs
- COM2PictureConverter.cs
- FlowLayoutPanel.cs
- SqlUtil.cs
- ExtensionDataReader.cs
- TextDecorationCollectionConverter.cs
- DoubleLink.cs
- TextBounds.cs
- MenuBase.cs
- QfeChecker.cs
- ProxyWebPartManager.cs
- Types.cs
- SqlUtil.cs
- SqlTriggerContext.cs
- Decoder.cs
- DefaultSerializationProviderAttribute.cs
- AnnotationResourceCollection.cs
- OracleTransaction.cs
- SiteMapSection.cs
- SchemaTableColumn.cs
- LockCookie.cs
- XPathEmptyIterator.cs
- WinEventWrap.cs
- TcpProcessProtocolHandler.cs
- DefaultSettingsSection.cs
- AssociationEndMember.cs
- DataSetMappper.cs
- TraceHandlerErrorFormatter.cs
- WindowsHyperlink.cs
- StateDesigner.cs
- XmlUnspecifiedAttribute.cs
- SystemInfo.cs
- RuntimeConfigLKG.cs
- CommandField.cs