Пример #1
0
        /// <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;
        }
Пример #2
0
        //<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
            };
        }
Пример #3
0
 ///<inheritdoc />
 public ExtensionEntry LoadExtension(ExtensionInfo extensionInfo)
 {
     return _extensionsCache.GetOrAdd(extensionInfo.Name, name => _loader.Load(extensionInfo));
 }