title: Replace all class usages using roslyn
body: <p><strong>What I am trying to do:</strong>
  Let's assume we have a class <code>Class1</code> inside assembly <code>OldAssembly</code>.
  This assembly is referenced by a number of unknown projects.
  I am going to move this class into a new assembly <code>NewAssembly</code>, eventually name and namespace would also change. Now all usages must be adjusted.
  I want to create a tool which will automate these code adjustments. </p>
  
  <p><strong>What I did so far:</strong>
  I have played around with roslyn <code>Renamer</code>: </p>
  
  <pre><code>var workspace = MSBuildWorkspace.Create();
  var originalSln = workspace.OpenSolutionAsync(@"D:\spikes\ToBeFixed\ToBeFixed.sln").Result;
  
  var project = originalSln.Projects.Single();
  var compilation = project.GetCompilationAsync().Result;
  
  var renameFrom = compilation.GetSymbolsWithName(s =&gt; s.Contains("Class1")).Single();
  const string renameTo = "Class2";
  var optionSet = originalSln.Workspace.Options;
  var modifiedSln = Renamer.RenameSymbolAsync(originalSln, renameFrom, renameTo, optionSet).Result;
  
  workspace.TryApplyChanges(modifiedSln);
  </code></pre>
  
  <p>but it renames also the source class. So I have looked into the <code>Renamer</code> code and tried to adapt it for my use case, but failed due to some internals used in there.</p>
  
  <p><strong>Question:</strong>
  How can I automate code adjustments after moving a class from one assembly into another.</p>