static void Main(string[] args) { MSBuildWorkspace workspace = MSBuildWorkspace.Create(); Project proj = workspace.OpenProjectAsync("../../../TestProj/TestProj.csproj").Result; Compilation compilation = proj.GetCompilationAsync().Result; INamedTypeSymbol myClass = compilation.GetTypeByMetadataName("TestProj.MyClass"); INamedTypeSymbol myInterface = compilation.GetTypeByMetadataName("TestProj.IMyInterface"); string fullNamespace = myClass.GetFullNamespace(); IEnumerable <ISymbol> allMembers = myClass.GetMembers(); IMethodSymbol myMethod = myClass.GetMemberByName <IMethodSymbol>(nameof(MyClass.MyMethod)); IPropertySymbol myProp = myClass.GetMemberByName <IPropertySymbol>(nameof(MyClass.MyInt)); string methodSignature = myMethod.GetMethodSignature(); IPropertySymbol intProp = myInterface.GetMemberByName <IPropertySymbol>(nameof(IMyInterface.TheInt)); IPropertySymbol strProp = myInterface.GetMemberByName <IPropertySymbol>(nameof(IMyInterface.TheStr)); RoslynCodeBuilder roslynCodeBuilder = new RoslynCodeBuilder(); RoslynAnalysisAndGenerationUtils.TheNamespaces = roslynCodeBuilder.AllNamespaces; RoslynAnalysisAndGenerationUtils.TheAssemblies = roslynCodeBuilder.AllAssemblies; roslynCodeBuilder.AddNamespace("NP.Generated"); roslynCodeBuilder.AddClass("MyClass1", null, null, myInterface); roslynCodeBuilder.AddAutoProp(intProp.Name, intProp.Type as INamedTypeSymbol); roslynCodeBuilder.AddAutoProp(strProp.Name, strProp.Type as INamedTypeSymbol); //roslynCodeBuilder.AddField("_myField", myClass); //roslynCodeBuilder.AddPropWithBackingStore("MyProp", myClass); //roslynCodeBuilder.AddPropWrapper("_propField", myProp); //roslynCodeBuilder.AddPropOpening("MyField", myClass); //roslynCodeBuilder.Pop(); roslynCodeBuilder.AddMethodWrapper("_propField", myMethod); roslynCodeBuilder.PopAll(); Console.WriteLine(roslynCodeBuilder.ToString()); }