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
- TextEditorMouse.cs
- ToolStripRendererSwitcher.cs
- NativeMethods.cs
- DataSourceControl.cs
- NavigationHelper.cs
- BamlLocalizabilityResolver.cs
- Variant.cs
- ObjectIDGenerator.cs
- ExtensionWindow.cs
- LinearGradientBrush.cs
- SingleAnimation.cs
- Hashtable.cs
- Attributes.cs
- HttpApplicationFactory.cs
- GC.cs
- XmlLanguage.cs
- UTF8Encoding.cs
- GridViewColumnHeaderAutomationPeer.cs
- Bidi.cs
- LinkLabelLinkClickedEvent.cs
- MILUtilities.cs
- QueueNameHelper.cs
- TextTabProperties.cs
- ByValueEqualityComparer.cs
- Misc.cs
- Process.cs
- TargetException.cs
- HMACSHA1.cs
- JpegBitmapEncoder.cs
- PngBitmapEncoder.cs
- ProviderIncompatibleException.cs
- ObsoleteAttribute.cs
- UInt64.cs
- AdCreatedEventArgs.cs
- ExpressionDumper.cs
- CollectionViewSource.cs
- TabItem.cs
- View.cs
- ComponentManagerBroker.cs
- AudioFormatConverter.cs
- TextWriterTraceListener.cs
- Parallel.cs
- Row.cs
- WebContentFormatHelper.cs
- TargetException.cs
- StaticResourceExtension.cs
- SecureEnvironment.cs
- XmlValueConverter.cs
- IndexedSelectQueryOperator.cs
- MemberInfoSerializationHolder.cs
- TabletDevice.cs
- DBConnection.cs
- HwndAppCommandInputProvider.cs
- SecurityVerifiedMessage.cs
- Simplifier.cs
- CanonicalFontFamilyReference.cs
- DocumentViewerAutomationPeer.cs
- XmlQualifiedNameTest.cs
- DispatchWrapper.cs
- OrderByQueryOptionExpression.cs
- ProfileEventArgs.cs
- TextChange.cs
- ConditionCollection.cs
- BamlRecordReader.cs
- ButtonBase.cs
- CaseInsensitiveHashCodeProvider.cs
- ComEventsMethod.cs
- ComponentCache.cs
- DBCommandBuilder.cs
- InternalDuplexBindingElement.cs
- RtfControlWordInfo.cs
- InputBuffer.cs
- ProcessModule.cs
- Rectangle.cs
- TextEditorTables.cs
- XNodeNavigator.cs
- ErrorEventArgs.cs
- WizardSideBarListControlItemEventArgs.cs
- DrawingState.cs
- DateTimeParse.cs
- EventDescriptorCollection.cs
- TableStyle.cs
- XmlElement.cs
- RequiredAttributeAttribute.cs
- SqlColumnizer.cs
- Baml2006ReaderContext.cs
- designeractionbehavior.cs
- unsafeIndexingFilterStream.cs
- EdmTypeAttribute.cs
- SiteMap.cs
- RoutedEvent.cs
- BinaryObjectInfo.cs
- PublisherMembershipCondition.cs
- StringReader.cs
- SortExpressionBuilder.cs
- Ppl.cs
- TextTreeInsertUndoUnit.cs
- DesignerDataConnection.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ControlPaint.cs