diff --git a/src/VisualStudio/TestUtilities/InProcess/CSharpInteractiveWindow_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/CSharpInteractiveWindow_InProc.cs
index 2d5a17c8acbdde25f33121246fabdab4acacca45..d419b09d91ebbb4e13a87ca77e59e284e79d86da 100644
--- a/src/VisualStudio/TestUtilities/InProcess/CSharpInteractiveWindow_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/CSharpInteractiveWindow_InProc.cs
@@ -5,7 +5,7 @@
namespace Roslyn.VisualStudio.Test.Utilities.InProcess
{
- public class CSharpInteractiveWindow_InProc : InteractiveWindow_InProc
+ internal class CSharpInteractiveWindow_InProc : InteractiveWindow_InProc
{
private const string ViewCommand = "View.C#Interactive";
private const string WindowTitle = "C# Interactive";
diff --git a/src/VisualStudio/TestUtilities/InProcess/Editor_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/Editor_InProc.cs
index e31d21cb5641a391e13fe360d93300ce9388885f..b674b5f47c504dbf3f4d57a6300bb65bba3cab2d 100644
--- a/src/VisualStudio/TestUtilities/InProcess/Editor_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/Editor_InProc.cs
@@ -12,7 +12,7 @@
namespace Roslyn.VisualStudio.Test.Utilities.InProcess
{
- public class Editor_InProc : InProcComponent
+ internal class Editor_InProc : InProcComponent
{
private static readonly Guid IWpfTextViewId = new Guid("8C40265E-9FDB-4F54-A0FD-EBB72B7D0476");
diff --git a/src/VisualStudio/TestUtilities/InProcess/InProcComponent.cs b/src/VisualStudio/TestUtilities/InProcess/InProcComponent.cs
index 0be13963ae261f475b9ee1a5254c22ab918f98d8..6bc0d0accd6a77a6166bb95663d881aeddcaae7b 100644
--- a/src/VisualStudio/TestUtilities/InProcess/InProcComponent.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/InProcComponent.cs
@@ -14,7 +14,7 @@ namespace Roslyn.VisualStudio.Test.Utilities.InProcess
/// Base class for all components that run inside of the Visual Studio process. Every in-proc component
/// must provide a public, static, parameterless "Create" method.
///
- public abstract class InProcComponent : MarshalByRefObject
+ internal abstract class InProcComponent : MarshalByRefObject
{
protected InProcComponent() { }
diff --git a/src/VisualStudio/TestUtilities/InProcess/InteractiveWindow_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/InteractiveWindow_InProc.cs
index feb74aa4d94e796e0ede756db702151733f7262e..4759944e6b1b7f4375a8580874f9a6f33f25b337 100644
--- a/src/VisualStudio/TestUtilities/InProcess/InteractiveWindow_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/InteractiveWindow_InProc.cs
@@ -12,7 +12,7 @@ namespace Roslyn.VisualStudio.Test.Utilities.InProcess
///
/// This object exists in the Visual Studio host and is marhsalled across the process boundary.
///
- public abstract class InteractiveWindow_InProc : InProcComponent
+ internal abstract class InteractiveWindow_InProc : InProcComponent
{
private const string ResetCommand = "InteractiveConsole.Reset";
private const string ReplSubmissionText = ". ";
diff --git a/src/VisualStudio/TestUtilities/InProcess/SolutionExplorer_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/SolutionExplorer_InProc.cs
index 2bcdfb33713facde64d179a982b4e746eeeb33e2..c5581d10d5ae177b6629172c65afbe921072bf2b 100644
--- a/src/VisualStudio/TestUtilities/InProcess/SolutionExplorer_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/SolutionExplorer_InProc.cs
@@ -7,7 +7,7 @@
namespace Roslyn.VisualStudio.Test.Utilities.InProcess
{
- public class SolutionExplorer_InProc : InProcComponent
+ internal class SolutionExplorer_InProc : InProcComponent
{
private EnvDTE80.Solution2 _solution;
private string _fileName;
diff --git a/src/VisualStudio/TestUtilities/InProcess/VisualStudioWorkspace_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/VisualStudioWorkspace_InProc.cs
index 7e6056c9b7c234ded862c75f5a12012dfa4f634d..2f7ec0e72184dc65739b2f79f6fc0ac0161554d4 100644
--- a/src/VisualStudio/TestUtilities/InProcess/VisualStudioWorkspace_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/VisualStudioWorkspace_InProc.cs
@@ -13,7 +13,7 @@
namespace Roslyn.VisualStudio.Test.Utilities.InProcess
{
- public class VisualStudioWorkspace_InProc : InProcComponent
+ internal class VisualStudioWorkspace_InProc : InProcComponent
{
private static readonly Guid RoslynPackageId = new Guid("6cf2e545-6109-4730-8883-cf43d7aec3e1");
private readonly VisualStudioWorkspace _visualStudioWorkspace;
diff --git a/src/VisualStudio/TestUtilities/InProcess/VisualStudio_InProc.cs b/src/VisualStudio/TestUtilities/InProcess/VisualStudio_InProc.cs
index d5c4ae0047c0934ae198bf03268f6af100387584..c853c68db1c6510175e5e5805d6ea90ac9061f88 100644
--- a/src/VisualStudio/TestUtilities/InProcess/VisualStudio_InProc.cs
+++ b/src/VisualStudio/TestUtilities/InProcess/VisualStudio_InProc.cs
@@ -3,7 +3,7 @@
namespace Roslyn.VisualStudio.Test.Utilities.InProcess
{
- public class VisualStudio_InProc : InProcComponent
+ internal class VisualStudio_InProc : InProcComponent
{
private VisualStudio_InProc() { }
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/CSharpInteractiveWindow_OutOfProc.cs b/src/VisualStudio/TestUtilities/OutOfProcess/CSharpInteractiveWindow_OutOfProc.cs
index c5e5ea25ba032c6cb4c124cc46216917abd22119..ffb5b008530544d78c281bd92411819dc68602fc 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/CSharpInteractiveWindow_OutOfProc.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/CSharpInteractiveWindow_OutOfProc.cs
@@ -4,11 +4,16 @@
namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
{
- public class CSharpInteractiveWindow_OutOfProc : InteractiveWindow_OutOfProc
+ public class CSharpInteractiveWindow_OutOfProc : InteractiveWindow_OutOfProc
{
public CSharpInteractiveWindow_OutOfProc(VisualStudioInstance visualStudioInstance)
: base(visualStudioInstance)
{
}
+
+ internal override InteractiveWindow_InProc CreateInProcComponent(VisualStudioInstance visualStudioInstance)
+ {
+ return CreateInProcComponent(visualStudioInstance);
+ }
}
}
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/Editor_OutOfProc.cs b/src/VisualStudio/TestUtilities/OutOfProcess/Editor_OutOfProc.cs
index ca1822aa2dfd6a0e0afc39fdd2f435083f608fb9..64547fe54507386dd42d05aae9a607cb42c7fab8 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/Editor_OutOfProc.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/Editor_OutOfProc.cs
@@ -10,33 +10,36 @@ namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
///
/// Provides a means of interacting with the Visual Studio editor by remoting calls into Visual Studio.
///
- public partial class Editor_OutOfProc : OutOfProcComponent
+ public partial class Editor_OutOfProc : OutOfProcComponent
{
+ private readonly Editor_InProc _inProc;
+
internal Editor_OutOfProc(VisualStudioInstance visualStudioInstance)
: base(visualStudioInstance)
{
+ this._inProc = CreateInProcComponent(visualStudioInstance);
}
- public void Activate() => InProc.Activate();
+ public void Activate() => _inProc.Activate();
- public string GetText() => InProc.GetText();
- public void SetText(string value) => InProc.SetText(value);
+ public string GetText() => _inProc.GetText();
+ public void SetText(string value) => _inProc.SetText(value);
- public string GetCurrentLineText() => InProc.GetCurrentLineText();
- public int GetCaretPosition() => InProc.GetCaretPosition();
- public string GetLineTextBeforeCaret() => InProc.GetLineTextBeforeCaret();
- public string GetLineTextAfterCaret() => InProc.GetLineTextAfterCaret();
+ public string GetCurrentLineText() => _inProc.GetCurrentLineText();
+ public int GetCaretPosition() => _inProc.GetCaretPosition();
+ public string GetLineTextBeforeCaret() => _inProc.GetLineTextBeforeCaret();
+ public string GetLineTextAfterCaret() => _inProc.GetLineTextAfterCaret();
- public void MoveCaret(int position) => InProc.MoveCaret(position);
+ public void MoveCaret(int position) => _inProc.MoveCaret(position);
- public string[] GetCompletionItems() => InProc.GetCompletionItems();
- public string GetCurrentCompletionItem() => InProc.GetCurrentCompletionItem();
- public bool IsCompletionActive() => InProc.IsCompletionActive();
+ public string[] GetCompletionItems() => _inProc.GetCompletionItems();
+ public string GetCurrentCompletionItem() => _inProc.GetCurrentCompletionItem();
+ public bool IsCompletionActive() => _inProc.IsCompletionActive();
- public Signature[] GetSignatures() => InProc.GetSignatures();
- public Signature GetCurrentSignature() => InProc.GetCurrentSignature();
+ public Signature[] GetSignatures() => _inProc.GetSignatures();
+ public Signature GetCurrentSignature() => _inProc.GetCurrentSignature();
- public bool IsCaretOnScreen() => InProc.IsCaretOnScreen();
+ public bool IsCaretOnScreen() => _inProc.IsCaretOnScreen();
public void SendKeys(params object[] keys)
{
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/InteractiveWindow_OutOfProc.cs b/src/VisualStudio/TestUtilities/OutOfProcess/InteractiveWindow_OutOfProc.cs
index bbee86fe6639b431a2878558e22eb92559a8516c..1043b266182068c3c83f53ba5a0712ea1b64f53d 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/InteractiveWindow_OutOfProc.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/InteractiveWindow_OutOfProc.cs
@@ -7,17 +7,21 @@ namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
///
/// Provides a means of interacting with the interactive window in the Visual Studio host.
///
- public abstract class InteractiveWindow_OutOfProc : OutOfProcComponent
- where TInProcComponent : InteractiveWindow_InProc
+ public abstract class InteractiveWindow_OutOfProc : OutOfProcComponent
{
+ private readonly InteractiveWindow_InProc _inProc;
+
internal InteractiveWindow_OutOfProc(VisualStudioInstance visualStudioInstance)
: base (visualStudioInstance)
{
+ _inProc = CreateInProcComponent(visualStudioInstance);
}
+ internal abstract InteractiveWindow_InProc CreateInProcComponent(VisualStudioInstance visualStudioInstance);
+
public void Initialize()
{
- InProc.Initialize();
+ _inProc.Initialize();
}
///
@@ -25,12 +29,12 @@ public void Initialize()
///
public string GetLastReplOutput()
{
- return InProc.GetLastReplOutput();
+ return _inProc.GetLastReplOutput();
}
public string GetReplText()
{
- return InProc.GetReplText();
+ return _inProc.GetReplText();
}
///
@@ -38,32 +42,32 @@ public string GetReplText()
///
public string GetReplTextWithoutPrompt()
{
- return InProc.GetReplTextWithoutPrompt();
+ return _inProc.GetReplTextWithoutPrompt();
}
public void ShowWindow(bool waitForPrompt = true)
{
- InProc.ShowWindow(waitForPrompt);
+ _inProc.ShowWindow(waitForPrompt);
}
public void Reset(bool waitForPrompt = true)
{
- InProc.Reset(waitForPrompt);
+ _inProc.Reset(waitForPrompt);
}
public void SubmitText(string text, bool waitForPrompt = true)
{
- InProc.SubmitText(text, waitForPrompt);
+ _inProc.SubmitText(text, waitForPrompt);
}
public void WaitForReplOutput(string outputText)
{
- InProc.WaitForReplOutput(outputText);
+ _inProc.WaitForReplOutput(outputText);
}
public void CleanUpInteractiveWindow()
{
- InProc.CloseWindow();
+ _inProc.CloseWindow();
}
}
}
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/OutOfProcComponent.cs b/src/VisualStudio/TestUtilities/OutOfProcess/OutOfProcComponent.cs
index 1fcbad4fb706d5517d039982debf4a91c5ca3bb5..e6cdb1073f921948d4a47f6dc111bbc1df3e3ff2 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/OutOfProcComponent.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/OutOfProcComponent.cs
@@ -7,23 +7,20 @@ namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
///
/// Base class for all components that run outside of the Visual Studio process.
///
- public abstract class OutOfProcComponent
- where TInProcComponent : InProcComponent
+ public abstract class OutOfProcComponent
{
protected readonly VisualStudioInstance VisualStudioInstance;
- protected readonly TInProcComponent InProc;
protected OutOfProcComponent(VisualStudioInstance visualStudioInstance)
{
VisualStudioInstance = visualStudioInstance;
-
- InProc = CreateInProcComponent();
}
- private TInProcComponent CreateInProcComponent()
+ internal static TInProcComponent CreateInProcComponent(VisualStudioInstance visualStudioInstance)
+ where TInProcComponent : InProcComponent
{
// Create MarshalByRefObject that can be used to execute code in the VS process.
- return VisualStudioInstance.ExecuteInHostProcess(
+ return visualStudioInstance.ExecuteInHostProcess(
type: typeof(TInProcComponent),
methodName: "Create");
}
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/SolutionExplorer_OutOfProc.cs b/src/VisualStudio/TestUtilities/OutOfProcess/SolutionExplorer_OutOfProc.cs
index 907fe3b4fbc54f34765d3968851f72bd15940d84..14792cd4b621fd92b27774132613a4f900c75ef0 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/SolutionExplorer_OutOfProc.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/SolutionExplorer_OutOfProc.cs
@@ -4,36 +4,42 @@
namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
{
- public class SolutionExplorer_OutOfProc : OutOfProcComponent
+ public class SolutionExplorer_OutOfProc : OutOfProcComponent
{
+ private readonly SolutionExplorer_InProc _inProc;
+
public SolutionExplorer_OutOfProc(VisualStudioInstance visualStudioInstance)
: base(visualStudioInstance)
{
+ this._inProc = CreateInProcComponent(visualStudioInstance);
}
- public void CloseSolution(bool saveFirst = false) => InProc.CloseSolution(saveFirst);
+ public void CloseSolution(bool saveFirst = false)
+ {
+ _inProc.CloseSolution(saveFirst);
+ }
///
/// Creates and loads a new solution in the host process, optionally saving the existing solution if one exists.
///
public void CreateSolution(string solutionName, bool saveExistingSolutionIfExists = false)
{
- InProc.CreateSolution(solutionName, saveExistingSolutionIfExists);
+ _inProc.CreateSolution(solutionName, saveExistingSolutionIfExists);
}
public void OpenSolution(string path, bool saveExistingSolutionIfExists = false)
{
- InProc.OpenSolution(path, saveExistingSolutionIfExists);
+ _inProc.OpenSolution(path, saveExistingSolutionIfExists);
}
public void AddProject(string projectName, string projectTemplate, string languageName)
{
- InProc.AddProject(projectName, projectTemplate, languageName);
+ _inProc.AddProject(projectName, projectTemplate, languageName);
}
public void CleanUpOpenSolution()
{
- InProc.CleanUpOpenSolution();
+ _inProc.CleanUpOpenSolution();
}
}
}
diff --git a/src/VisualStudio/TestUtilities/OutOfProcess/VisualStudioWorkspace_OutOfProc.cs b/src/VisualStudio/TestUtilities/OutOfProcess/VisualStudioWorkspace_OutOfProc.cs
index 9ad726db91449b705129dea8fd93808974074430..70dbf0601f36a1c18d44accfbb9bfc5dea5abc4d 100644
--- a/src/VisualStudio/TestUtilities/OutOfProcess/VisualStudioWorkspace_OutOfProc.cs
+++ b/src/VisualStudio/TestUtilities/OutOfProcess/VisualStudioWorkspace_OutOfProc.cs
@@ -4,54 +4,57 @@
namespace Roslyn.VisualStudio.Test.Utilities.OutOfProcess
{
- public class VisualStudioWorkspace_OutOfProc : OutOfProcComponent
+ public class VisualStudioWorkspace_OutOfProc : OutOfProcComponent
{
+ private readonly VisualStudioWorkspace_InProc _inProc;
+
internal VisualStudioWorkspace_OutOfProc(VisualStudioInstance visualStudioInstance)
: base(visualStudioInstance)
{
+ this._inProc = CreateInProcComponent(visualStudioInstance);
}
public bool UseSuggestionMode
{
get
{
- return InProc.UseSuggestionMode;
+ return _inProc.UseSuggestionMode;
}
set
{
- InProc.UseSuggestionMode = value;
+ _inProc.UseSuggestionMode = value;
}
}
public bool IsPrettyListingOn(string languageName)
{
- return InProc.IsPrettyListingOn(languageName);
+ return _inProc.IsPrettyListingOn(languageName);
}
public void SetPrettyListing(string languageName, bool value)
{
- InProc.SetPrettyListing(languageName, value);
+ _inProc.SetPrettyListing(languageName, value);
}
public void WaitForAsyncOperations(string featuresToWaitFor, bool waitForWorkspaceFirst = true)
{
- InProc.WaitForAsyncOperations(featuresToWaitFor, waitForWorkspaceFirst);
+ _inProc.WaitForAsyncOperations(featuresToWaitFor, waitForWorkspaceFirst);
}
public void WaitForAllAsyncOperations()
{
- InProc.WaitForAllAsyncOperations();
+ _inProc.WaitForAllAsyncOperations();
}
public void CleanUpWorkspace()
{
- InProc.CleanUpWorkspace();
+ _inProc.CleanUpWorkspace();
}
public void CleanUpWaitingService()
{
- InProc.CleanUpWaitingService();
+ _inProc.CleanUpWaitingService();
}
}
}