Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataWeb / 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.Services.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; private string _targetFilePath; internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal LazyTextWriterCreator(TextWriter writer) { _writer = writer; } 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.Services.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; private string _targetFilePath; internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } internal LazyTextWriterCreator(TextWriter writer) { _writer = writer; } 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
- TypefaceMap.cs
- ObjectDataSourceDisposingEventArgs.cs
- SoapMessage.cs
- DataTableExtensions.cs
- DataGridColumnReorderingEventArgs.cs
- ScriptIgnoreAttribute.cs
- PersonalizableTypeEntry.cs
- ArgumentDesigner.xaml.cs
- CategoryGridEntry.cs
- Literal.cs
- ExpressionDumper.cs
- DataKey.cs
- DataGridViewControlCollection.cs
- WebServiceData.cs
- DockPanel.cs
- SignedXml.cs
- ClonableStack.cs
- ThousandthOfEmRealPoints.cs
- AutoResizedEvent.cs
- ErasingStroke.cs
- CreateUserWizardStep.cs
- SignatureGenerator.cs
- MultipartContentParser.cs
- TypeViewSchema.cs
- AppSecurityManager.cs
- LinkedResourceCollection.cs
- XmlSchemaFacet.cs
- AttachedPropertiesService.cs
- TypedReference.cs
- RectValueSerializer.cs
- WorkflowViewService.cs
- CollectionMarkupSerializer.cs
- RangeContentEnumerator.cs
- RemoteWebConfigurationHost.cs
- QilLiteral.cs
- BamlTreeNode.cs
- FormsAuthenticationUser.cs
- PngBitmapDecoder.cs
- ProviderBase.cs
- DictionaryManager.cs
- SoapElementAttribute.cs
- FlowDocumentView.cs
- XmlDigitalSignatureProcessor.cs
- ProviderCommandInfoUtils.cs
- dataprotectionpermissionattribute.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- FlatButtonAppearance.cs
- Bidi.cs
- SqlTriggerAttribute.cs
- CrossAppDomainChannel.cs
- log.cs
- AssemblyUtil.cs
- Html32TextWriter.cs
- DescriptionAttribute.cs
- HtmlImage.cs
- WindowsStreamSecurityElement.cs
- Debug.cs
- XmlSchemaSet.cs
- ArrangedElementCollection.cs
- ProviderSettings.cs
- URI.cs
- TargetConverter.cs
- FragmentQueryProcessor.cs
- OutputCacheEntry.cs
- LoginDesigner.cs
- CreateRefExpr.cs
- SqlDesignerDataSourceView.cs
- _AutoWebProxyScriptHelper.cs
- ObjectMemberMapping.cs
- CustomTypeDescriptor.cs
- ErrorFormatterPage.cs
- DynamicFilterExpression.cs
- DataObjectMethodAttribute.cs
- TableLayoutSettingsTypeConverter.cs
- Console.cs
- GetIndexBinder.cs
- MsmqHostedTransportConfiguration.cs
- WorkflowMarkupSerializer.cs
- StylusPointPropertyInfoDefaults.cs
- XmlILIndex.cs
- WpfPayload.cs
- XXXOnTypeBuilderInstantiation.cs
- CallSiteBinder.cs
- TextElementEditingBehaviorAttribute.cs
- UnsafeNativeMethods.cs
- FunctionUpdateCommand.cs
- TextParaClient.cs
- WebPartsPersonalizationAuthorization.cs
- PagedDataSource.cs
- EventSourceCreationData.cs
- ArraySortHelper.cs
- ContentElement.cs
- GridViewCancelEditEventArgs.cs
- RelationalExpressions.cs
- CqlLexerHelpers.cs
- XmlILStorageConverter.cs
- Html32TextWriter.cs
- QilLiteral.cs
- SchemaCollectionPreprocessor.cs
- SelectionChangedEventArgs.cs