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
- SqlServer2KCompatibilityCheck.cs
- XmlAttributeProperties.cs
- PresentationAppDomainManager.cs
- CodeGotoStatement.cs
- FileRecordSequenceHelper.cs
- OdbcHandle.cs
- Matrix3DConverter.cs
- TransportConfigurationTypeElementCollection.cs
- UserControl.cs
- HttpHandlerAction.cs
- StylusButtonEventArgs.cs
- AuthenticateEventArgs.cs
- EventItfInfo.cs
- AmbientEnvironment.cs
- ClientSession.cs
- AnimatedTypeHelpers.cs
- XmlCompatibilityReader.cs
- ZipIOLocalFileBlock.cs
- TimeStampChecker.cs
- RuntimeConfig.cs
- RegexRunner.cs
- BoundField.cs
- RemotingConfigParser.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- WebPartUtil.cs
- ProgramPublisher.cs
- ApplicationFileParser.cs
- ClaimTypeElement.cs
- WindowsListViewItemStartMenu.cs
- MouseOverProperty.cs
- XPathScanner.cs
- AssemblyFilter.cs
- WebEvents.cs
- Char.cs
- RuntimeResourceSet.cs
- OdbcRowUpdatingEvent.cs
- CriticalExceptions.cs
- QilLiteral.cs
- ScriptControlManager.cs
- Vector3DCollection.cs
- ExecutionContext.cs
- AppDomainFactory.cs
- COM2Properties.cs
- PermissionAttributes.cs
- StateManagedCollection.cs
- SpeechRecognizer.cs
- X509Extension.cs
- Validator.cs
- _ChunkParse.cs
- RemotingAttributes.cs
- ProtocolsConfigurationHandler.cs
- DataGridViewComboBoxEditingControl.cs
- CodeChecksumPragma.cs
- Margins.cs
- ErrorWrapper.cs
- TextLineResult.cs
- Classification.cs
- DataTransferEventArgs.cs
- MarkupExtensionReturnTypeAttribute.cs
- PassportAuthenticationEventArgs.cs
- CustomWebEventKey.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- EntityDesignerUtils.cs
- ListBox.cs
- ScrollBarRenderer.cs
- HttpResponse.cs
- WindowsSecurityToken.cs
- LocatorPart.cs
- initElementDictionary.cs
- ModuleBuilderData.cs
- XmlUtil.cs
- EmptyEnumerable.cs
- SystemResourceHost.cs
- PresentationTraceSources.cs
- RangeValidator.cs
- XmlSchemaAnnotation.cs
- XmlSchemaExporter.cs
- Reference.cs
- WebServiceClientProxyGenerator.cs
- ReadOnlyNameValueCollection.cs
- EntityDataSourceDesigner.cs
- ObjectDisposedException.cs
- ApplicationException.cs
- DataSourceCacheDurationConverter.cs
- TreeBuilder.cs
- NativeRecognizer.cs
- SettingsPropertyNotFoundException.cs
- GridViewColumnCollection.cs
- Html32TextWriter.cs
- SafeMemoryMappedViewHandle.cs
- Win32.cs
- UrlMappingsSection.cs
- OLEDB_Enum.cs
- HtmlTableCell.cs
- HashStream.cs
- JournalNavigationScope.cs
- XmlNode.cs
- FormsAuthenticationModule.cs
- StreamingContext.cs
- XmlCompatibilityReader.cs