private static TypeReference Resolve(string name, string @namespace) { var assemblyDef = AssemblyFactory.GetAssemblyDefinition(KnownAssembly.System_CorLib); var typeDef = assemblyDef.Module.GetType(name, @namespace); return(TypeFactory.GetTypeReference(typeDef)); }
public void GetAssemblyDefinitionTest() { var assemblyRef = new AssemblyReference("System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); var assemblyDef = AssemblyFactory.GetAssemblyDefinition(assemblyRef); assemblyDef.Name.Should().Be(assemblyRef.Name); assemblyDef.Version.Should().Be(assemblyRef.Version); assemblyDef.Culture.Should().Be(assemblyRef.Culture); assemblyDef.PublicKeyToken.Should().Be(assemblyRef.PublicKeyToken); assemblyDef.HashAlgorithm.Should().Be(AssemblyHashAlgorithm.SHA1); assemblyDef.EntryPoint.Should().BeNull(); assemblyDef.Attributes.Should().Be(AssemblyAttributes.PublicKey); assemblyDef.Module.Name.Should().Be("System.Console.dll"); assemblyDef.Module.Mvid.Should().Be(new Guid("4b786cd1-97ab-44f0-ac1b-00ca356783a6")); assemblyDef.Module.EntryPoint.Should().BeNull(); assemblyDef.Module.Types.Count.Should().Be(39); assemblyDef.References.Should().Be(new[] { new AssemblyReference("System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Resources.ResourceManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.IO, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Text.Encoding, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Threading.Tasks, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.IO.FileSystem.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Threading, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Runtime.InteropServices, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), new AssemblyReference("System.Text.Encoding.Extensions, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") }, Output, AssemblyInfoComparer.Default); }
public void GetMethodTest() { var assembly = AssemblyFactory.GetAssemblyDefinition(KnownAssembly.System_CorLib); var type = assembly.Module.GetType("Int32", "System"); type.Should().BeNotNull(); type.GetMethod("ToString", CallingConventions.HasThis).Should().BeNotNull(); type.GetMethod("ToString", CallingConventions.HasThis, KnownType.String).Should().BeNotNull(); }
private TypeRegistry GetTypeRegistry() { var registry = new TypeRegistry(); var references = _context.Assembly.References; foreach (var assemblyRef in references) { var assemblyDef = AssemblyFactory.GetAssemblyDefinition(assemblyRef); var types = assemblyDef.Module.Types.Where(type => !type.IsModuleType); foreach (var type in types) { registry.Register(type); } } return(registry); }