Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / EntityModel / LazyTextWriterCreator.cs / 1305376 / 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; using System.Runtime.Versioning; 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; } [ResourceExposure(ResourceScope.Machine)] //The target file path is used to open a stream which is a machine resource. internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } [ResourceExposure(ResourceScope.None)] //The resource( target file path) is not exposed to the callers of this method [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] //For StreamWriter constructor and we pick //the target file path from class variable. internal TextWriter GetOrCreateTextWriter() { if (_writer == null) { // lazy creating the writer _writer = new StreamWriter(_targetFilePath); } return _writer; } internal string TargetFilePath { get { return _targetFilePath; } } internal bool IsUserSuppliedTextWriter { get { return !_ownTextWriter; } } public void Dispose() { // Technically, calling GC.SuppressFinalize is not required because the class does not // have a finalizer, but it does no harm, protects against the case where a finalizer is added // in the future, and prevents an FxCop warning. GC.SuppressFinalize(this); 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; using System.Runtime.Versioning; 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; } [ResourceExposure(ResourceScope.Machine)] //The target file path is used to open a stream which is a machine resource. internal LazyTextWriterCreator(string targetFilePath) { Debug.Assert(targetFilePath != null, "targetFilePath parameter is null"); _ownTextWriter = true; _targetFilePath = targetFilePath; } [ResourceExposure(ResourceScope.None)] //The resource( target file path) is not exposed to the callers of this method [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] //For StreamWriter constructor and we pick //the target file path from class variable. internal TextWriter GetOrCreateTextWriter() { if (_writer == null) { // lazy creating the writer _writer = new StreamWriter(_targetFilePath); } return _writer; } internal string TargetFilePath { get { return _targetFilePath; } } internal bool IsUserSuppliedTextWriter { get { return !_ownTextWriter; } } public void Dispose() { // Technically, calling GC.SuppressFinalize is not required because the class does not // have a finalizer, but it does no harm, protects against the case where a finalizer is added // in the future, and prevents an FxCop warning. GC.SuppressFinalize(this); 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
- messageonlyhwndwrapper.cs
- EmptyElement.cs
- GridViewColumn.cs
- ZoneIdentityPermission.cs
- Funcletizer.cs
- baseaxisquery.cs
- FlowNode.cs
- ModelMemberCollection.cs
- DataGridCellClipboardEventArgs.cs
- ExtractCollection.cs
- RequestResponse.cs
- KeyTime.cs
- XmlNavigatorStack.cs
- NumberSubstitution.cs
- IndexerNameAttribute.cs
- PenCursorManager.cs
- ThrowHelper.cs
- XDRSchema.cs
- LicenseException.cs
- Geometry3D.cs
- XmlBindingWorker.cs
- PersonalizableTypeEntry.cs
- WebPartEditorApplyVerb.cs
- Attributes.cs
- ObjRef.cs
- MessageBox.cs
- UriTemplateEquivalenceComparer.cs
- ToolStripLocationCancelEventArgs.cs
- DataBindingExpressionBuilder.cs
- FontConverter.cs
- OleDbTransaction.cs
- PageThemeBuildProvider.cs
- SetterBaseCollection.cs
- TripleDES.cs
- DirectionalAction.cs
- UrlMappingsModule.cs
- RemotingConfigParser.cs
- Attribute.cs
- GetWorkflowTree.cs
- ProvidersHelper.cs
- DrawingState.cs
- AddInAttribute.cs
- StreamAsIStream.cs
- DataGridViewHitTestInfo.cs
- RuntimeVariableList.cs
- MenuItemBinding.cs
- Screen.cs
- CollectionContainer.cs
- AliasGenerator.cs
- RadialGradientBrush.cs
- Environment.cs
- Vector3DConverter.cs
- LexicalChunk.cs
- QilInvokeLateBound.cs
- EnumMember.cs
- WindowsFormsHelpers.cs
- WebHttpEndpointElement.cs
- Helpers.cs
- ContainerActivationHelper.cs
- SmtpNetworkElement.cs
- XmlSchemaDocumentation.cs
- ScriptingWebServicesSectionGroup.cs
- Process.cs
- GridViewItemAutomationPeer.cs
- HistoryEventArgs.cs
- RichTextBox.cs
- Tokenizer.cs
- FlowDocumentView.cs
- CustomAttributeSerializer.cs
- FontDialog.cs
- ToolTipService.cs
- WebBrowserNavigatedEventHandler.cs
- SecurityDocument.cs
- AdCreatedEventArgs.cs
- XmlReaderSettings.cs
- GC.cs
- CheckBoxList.cs
- DecimalConverter.cs
- DataBindingCollectionEditor.cs
- ListenerUnsafeNativeMethods.cs
- MasterPage.cs
- MultiView.cs
- MonthCalendar.cs
- AndCondition.cs
- AtlasWeb.Designer.cs
- HotSpot.cs
- SchemaEntity.cs
- ToolboxItemCollection.cs
- LifetimeServices.cs
- RadioButtonList.cs
- ReadingWritingEntityEventArgs.cs
- BrowserDefinition.cs
- PageFunction.cs
- Line.cs
- InputLangChangeRequestEvent.cs
- WindowShowOrOpenTracker.cs
- TypeDescriptor.cs
- FunctionImportMapping.cs
- ConnectionStringSettingsCollection.cs
- DebugHandleTracker.cs