/// <summary> /// Create <see cref="ExtensionInfo"/> and copy properties from <see cref="Project"/>. /// </summary> /// <param name="project"></param> /// <returns></returns> private static ExtensionInfo ToDescriptor(Project project) { var descriptor = new ExtensionInfo(); descriptor.Name = project.Name; descriptor.Title = project.Title; descriptor.Description = project.Description; descriptor.Copyright = project.Copyright; descriptor.Authors = project.Authors; descriptor.Version = project.Version.ToString(); descriptor.Dependencies = project.Dependencies.Select(t => t.Name); return descriptor; }
//<inheritdoc /> public ExtensionEntry Load(ExtensionInfo extensionInfo) { var assembly = LoadAssemblyFromPath(extensionInfo.Path); if (assembly == null) { return null; } _logger.LogDebug($"Loaded assembly [{assembly.FullName}] for extension [{extensionInfo.Name}]."); return new ExtensionEntry { ExtensionInfo = extensionInfo, Assembly = assembly }; }
///<inheritdoc /> public ExtensionEntry LoadExtension(ExtensionInfo extensionInfo) { return _extensionsCache.GetOrAdd(extensionInfo.Name, name => _loader.Load(extensionInfo)); }