public MetricsReader(string fileName) { loader = new CecilLoader(true) { IncludeInternalMembers = true }; namespaceMappings = new Dictionary <string, NamespaceNode>(); typeMappings = new Dictionary <ITypeDefinition, TypeNode>(); methodMappings = new Dictionary <IMethod, MethodNode>(); fieldMappings = new Dictionary <IField, FieldNode>(); cecilMappings = new Dictionary <MemberReference, IEntity>(); compilation = new SimpleCompilation(loader.LoadAssemblyFile(fileName)); // TODO load referenced assemblies into compilation. Assembly = new AssemblyNode(compilation.MainAssembly.AssemblyName); assemblyDefinition = loader.GetCecilObject(compilation.MainAssembly.UnresolvedAssembly); foreach (var type in compilation.MainAssembly.GetAllTypeDefinitions()) { ReadType(type); foreach (IMethod method in type.Methods) { ReadMethod(method); } foreach (IProperty property in type.Properties) { if (property.CanGet) { ReadMethod(property.Getter); } if (property.CanSet) { ReadMethod(property.Setter); } } foreach (IField field in type.Fields) { ReadField(field); } } foreach (var method in methodMappings.Values) { ReadInstructions(method, method.Method, loader.GetCecilObject((IUnresolvedMethod)method.Method.UnresolvedMember)); } Assembly.namespaces = namespaceMappings.Values; }
public static BitmapSource GetIcon(AssemblyNode module) { return(Assembly); }
public NamespaceNode(AssemblyNode assembly, string name) { Name = name; Assembly = assembly; types = new List <TypeNode>(); }