How can I get an IAssemblySymbol for a IProject?
-
Tuesday, February 14, 2012 11:18 PM
I've loaded a project via Workspace.LoadStandAloneProject and now I'd like to get ahold of the AssemblySymbol that represents the project. Is there a simple way to do this? Right now I have to use the ISemanticModel to resolve a syntax element in a SyntaxTree I get from an IDocument that I got from an IProject and then walk upto the AssemblySymbol.
Shouldn't IProject contain an ICompilation that can enumerate all the referenced AssemblySymbols -- both metadata and project reference -- and enumerate all the trees for each document?
Thanks,
Chris
All Replies
-
Wednesday, February 15, 2012 12:06 AMOwner
You should be able to get to the AssemblySymbols, SyntaxTrees etc. as follows. (Of course you can also get to the MetadataReferences \ SyntaxTrees via the Compilation instead of using the IProject.)
var compilation = project.GetCompilation();
var currentAssembly = project.GetCompilation().Assembly;
var referenceAssembly = compilation.GetReferencedAssemblySymbol(project.MetadataReferences.First());
var tree = project.Documents.First().GetSyntaxTree();Shyam Namboodiripad | Software Development Engineer in Test | Roslyn Compilers Team
- Marked As Answer by kingces95 Wednesday, February 15, 2012 12:50 AM
-
Wednesday, February 15, 2012 12:50 AMOh, duh. I keep not guessing if I have to use a "Get" prefix...
- Edited by kingces95 Wednesday, February 15, 2012 1:04 AM

