public void UseServices()
{
var source = @"using System.Diagnostics;
using System;
using System.IO;
namespace NS
{
public class C
{
}
}
class Program
{
public static void Main()
{
System.Int32 i = 0; System.Console.WriteLine(i.ToString());
Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
}
}";
var solutionId = SolutionId.CreateNewId();
ProjectId projectId;
DocumentId documentId;
var solution = Solution.Create(solutionId)
.AddCSharpProject("MyProject", "MyProject", out projectId)
.AddMetadataReference(projectId, MetadataReference.CreateAssemblyReference("mscorlib"))
.AddMetadataReference(projectId, MetadataReference.CreateAssemblyReference("System"))
.AddDocument(projectId, "MyFile.cs", source, out documentId);
var document = solution.GetDocument(documentId);
// Format the document.
document = document.Format();
Assert.AreEqual(@"using System.Diagnostics;
using System;
using System.IO;
namespace NS
{
public class C
{
}
}
class Program
{
public static void Main()
{
System.Int32 i = 0; System.Console.WriteLine(i.ToString());
Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
}
}", document.GetSyntaxRoot().ToString());
// Simplify names used in the document i.e. remove unnecessary namespace qualifiers.
document = document.Simplify();
Assert.AreEqual(@"using System.Diagnostics;
using System;
using System.IO;
namespace NS
{
public class C
{
}
}
class Program
{
public static void Main()
{
int i = 0; Console.WriteLine(i.ToString());
Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
}
}", document.GetSyntaxRoot().ToString());
// Sort namespace imports (usings) alphabetically.
document = document.OrganizeImports();
Assert.AreEqual(@"using System;
using System.Diagnostics;
using System.IO;
namespace NS
{
public class C
{
}
}
class Program
{
public static void Main()
{
int i = 0; Console.WriteLine(i.ToString());
Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
}
}", document.GetSyntaxRoot().ToString());
// Remove unused imports (usings).
document = document.RemoveUnnecessaryImports(); // OR document.GetSyntaxTree().RemoveUnnecessaryImports()
Assert.AreEqual(@"using System;
using System.Diagnostics;
namespace NS
{
public class C
{
}
}
class Program
{
public static void Main()
{
int i = 0; Console.WriteLine(i.ToString());
Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
}
}", document.GetSyntaxRoot().ToString());
}