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
- MultiSelector.cs
- ModifiableIteratorCollection.cs
- ImplicitInputBrush.cs
- FormsAuthenticationUserCollection.cs
- ThreadStartException.cs
- DropShadowBitmapEffect.cs
- TransformCollection.cs
- SortFieldComparer.cs
- TdsParser.cs
- MetadataArtifactLoaderCompositeFile.cs
- KnowledgeBase.cs
- DispatchChannelSink.cs
- WebPartTransformerCollection.cs
- HostProtectionException.cs
- InputProcessorProfiles.cs
- ObjectDataSourceDisposingEventArgs.cs
- ArrayEditor.cs
- StorageEndPropertyMapping.cs
- ConnectionConsumerAttribute.cs
- SmtpNegotiateAuthenticationModule.cs
- ObjectDataSourceEventArgs.cs
- EntityTypeEmitter.cs
- odbcmetadatacolumnnames.cs
- ClientConfigPaths.cs
- TableRow.cs
- CrossSiteScriptingValidation.cs
- XmlLoader.cs
- TraceContext.cs
- FormsIdentity.cs
- DesigntimeLicenseContextSerializer.cs
- DataGridViewButtonColumn.cs
- WriteableOnDemandPackagePart.cs
- CodeConditionStatement.cs
- _IPv6Address.cs
- SqlBinder.cs
- IncrementalHitTester.cs
- DataGridPageChangedEventArgs.cs
- SafeProcessHandle.cs
- CroppedBitmap.cs
- HttpSessionStateWrapper.cs
- PipelineModuleStepContainer.cs
- odbcmetadatafactory.cs
- WebProxyScriptElement.cs
- XmlChildEnumerator.cs
- VersionedStreamOwner.cs
- KeyFrames.cs
- RegistryConfigurationProvider.cs
- FactoryId.cs
- QilTernary.cs
- DirtyTextRange.cs
- SQLInt16.cs
- QueryOutputWriterV1.cs
- BooleanExpr.cs
- DefaultValueTypeConverter.cs
- ArgumentsParser.cs
- ApplicationManager.cs
- ConfigurationStrings.cs
- DBDataPermissionAttribute.cs
- DataControlLinkButton.cs
- CrossAppDomainChannel.cs
- TreeViewEvent.cs
- ReadWriteSpinLock.cs
- TreeView.cs
- XmlSerializableReader.cs
- LockingPersistenceProvider.cs
- CodeValidator.cs
- DefaultTextStoreTextComposition.cs
- Metadata.cs
- MobileSysDescriptionAttribute.cs
- PageStatePersister.cs
- ReadWriteObjectLock.cs
- AsymmetricAlgorithm.cs
- DataGridViewColumnConverter.cs
- MimeFormReflector.cs
- CaseStatement.cs
- HwndHostAutomationPeer.cs
- ToolStripSeparatorRenderEventArgs.cs
- Form.cs
- FloaterBaseParaClient.cs
- DispatchWrapper.cs
- _StreamFramer.cs
- IdleTimeoutMonitor.cs
- SizeF.cs
- FontWeight.cs
- RolePrincipal.cs
- PatternMatcher.cs
- Win32.cs
- TemplateNameScope.cs
- LassoHelper.cs
- PersonalizationProvider.cs
- RequestCacheEntry.cs
- TypeConverterHelper.cs
- StorageEntitySetMapping.cs
- DictionaryBase.cs
- PieceDirectory.cs
- SchemaImporter.cs
- InstanceDataCollectionCollection.cs
- DesignTableCollection.cs
- SourceElementsCollection.cs
- IndexerNameAttribute.cs