public void BaseTypeWithBclBaseTypeWithSystemRuntime() { _builder.AddReferenceOnlyAssemblyByType <object>(); var result = _builder.Build(); var type = GetTypeByNameAndAssert(result, nameof(BaseTypeWithBclBaseType)); var baseType = type.BaseType; Assert.NotNull(baseType); Assert.Equal(nameof(System.EventArgs), baseType.Name); }
private void AddSystemRuntimeAssembly() { var runtimeAssembly = Assembly.Load(new AssemblyName("System.Runtime, PublicKeyToken=b03f5f7f11d50a3a")); _builder.AddReferenceOnlyAssembly(runtimeAssembly.Location); _builder.AddReferenceOnlyAssemblyByType <object>(); }
/// <summary> /// Creates a new plugin loader /// </summary> /// <param name="root">root folder, default is relative to executing assemlby</param> /// <param name="patterns"></param> public PluginLoader(ILogger logger = null, string rootDir = ".", IEnumerable <string> patterns = null) { logger.LogDebug("Getting files from {relpath}", rootDir); var files = new List <string>(); if (patterns == null) { files.AddRange(Glob.Files(rootDir, "**/*.dll")); } else { foreach (var pattern in patterns) { files.AddRange(Glob.Files(rootDir, Regex.Replace(pattern, @"^\./", ""))); } } logger.LogDebug("Found {fct} files:\n {@files}", files.Count, files); var builder = new ReflectionMetadataBuilder(); foreach (var file in files) { try { builder.AddAssembly(Path.Combine(rootDir, file)); } catch (Exception) { } } builder.AddReferenceOnlyAssemblyByType <object>(); // adds the corlib try { metaData = builder.Build(true); } catch (AggregateException aex) { throw; } catch (Exception ex) { } }