Index: obsolete/Microsoft.VisualStudio.Project/Automation/AutomationScope.cs |
diff --git a/obsolete/Microsoft.VisualStudio.Project/Automation/AutomationScope.cs b/obsolete/Microsoft.VisualStudio.Project/Automation/AutomationScope.cs |
deleted file mode 100644 |
index d400694752f8cfdc4977838fe43cd66fd1f56293..0000000000000000000000000000000000000000 |
--- a/obsolete/Microsoft.VisualStudio.Project/Automation/AutomationScope.cs |
+++ /dev/null |
@@ -1,98 +0,0 @@ |
-/// Copyright (c) Microsoft Corporation. All rights reserved. |
- |
-using System; |
-using Microsoft.VisualStudio.Shell.Interop; |
-using ErrorHandler = Microsoft.VisualStudio.ErrorHandler; |
- |
-namespace Microsoft.VisualStudio.Project.Automation |
-{ |
- /// <summary> |
- /// Helper class that handle the scope of an automation function. |
- /// It should be used inside a "using" directive to define the scope of the |
- /// automation function and make sure that the ExitAutomation method is called. |
- /// </summary> |
- internal class AutomationScope : IDisposable |
- { |
- private IVsExtensibility3 extensibility; |
- private bool inAutomation; |
- private static volatile object Mutex; |
- private bool isDisposed; |
- |
- /// <summary> |
- /// Initializes the <see cref="AutomationScope"/> class. |
- /// </summary> |
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline")] |
- static AutomationScope() |
- { |
- Mutex = new object(); |
- } |
- |
- /// <summary> |
- /// Defines the beginning of the scope of an automation function. This constuctor |
- /// calls EnterAutomationFunction to signal the Shell that the current function is |
- /// changing the status of the automation objects. |
- /// </summary> |
- public AutomationScope(IServiceProvider provider) |
- { |
- if(null == provider) |
- { |
- throw new ArgumentNullException("provider"); |
- } |
- extensibility = provider.GetService(typeof(EnvDTE.IVsExtensibility)) as IVsExtensibility3; |
- if(null == extensibility) |
- { |
- throw new InvalidOperationException(); |
- } |
- ErrorHandler.ThrowOnFailure(extensibility.EnterAutomationFunction()); |
- inAutomation = true; |
- } |
- |
- /// <summary> |
- /// Ends the scope of the automation function. This function is also called by the |
- /// Dispose method. |
- /// </summary> |
- public void ExitAutomation() |
- { |
- if(inAutomation) |
- { |
- ErrorHandler.ThrowOnFailure(extensibility.ExitAutomationFunction()); |
- inAutomation = false; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the IVsExtensibility3 interface used in the automation function. |
- /// </summary> |
- public IVsExtensibility3 Extensibility |
- { |
- get { return extensibility; } |
- } |
- |
- /// <summary> |
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. |
- /// </summary> |
- public void Dispose() |
- { |
- this.Dispose(true); |
- GC.SuppressFinalize(this); |
- } |
- |
- #region IDisposable Members |
- private void Dispose(bool disposing) |
- { |
- if(!this.isDisposed) |
- { |
- lock(Mutex) |
- { |
- if(disposing) |
- { |
- ExitAutomation(); |
- } |
- |
- this.isDisposed = true; |
- } |
- } |
- } |
- #endregion |
- } |
-} |