public SystemImports(Func <string, TypeDefinition> findType, ModuleDefinition moduleDefinition) { Collections = new CollectionsImport(findType, moduleDefinition); ComponentModel = new ComponentModelImports(findType, moduleDefinition); Reflection = new ReflectionImports(findType, moduleDefinition); Uri = new UriImports(findType, moduleDefinition); IO = new IOImports(findType, moduleDefinition); IDisposable = new IDisposableImports(findType, moduleDefinition); Diagnostics = new DiagnosticsImports(findType, moduleDefinition); CodeDom = new CodeDomImports(findType, moduleDefinition); Object = new ObjectImports(findType, moduleDefinition); Func = new FuncImports(findType, moduleDefinition); Type = new TypeImports(findType, moduleDefinition); }
public SystemImport(Func <string, TypeDefinition> findType, ModuleDefinition moduleDefinition) { Action = new ActionImport(findType, moduleDefinition); Type = new TypeImport(findType, moduleDefinition); Collections = new CollectionsImport(findType, moduleDefinition); IServiceProvider = moduleDefinition.ImportReference(findType("System.IServiceProvider")); Exception = moduleDefinition.ImportReference(findType("System.Exception")); var aggregateExceptionType = findType("System.AggregateException"); var enumerableException = Collections.Enumerable.MakeGenericInstanceType(Exception); AggregateException_Ctor = moduleDefinition.ImportReference(aggregateExceptionType .GetConstructors().Single(c => c.Parameters.Count == 2 && c.Parameters[0].ParameterType.IsType <string>() && c.Parameters[1].ParameterType.IsType(enumerableException))); Func2_Ctor = moduleDefinition.ImportReference(findType("System.Func`2")).Resolve().GetConstructors().Single(); }