private IEnumerable<DependencyReferenceDescriptor> ProcessExtensionReferences(ExtensionLoadingContext context, ExtensionProbeEntry activatedExtension) { if (activatedExtension == null) return Enumerable.Empty<DependencyReferenceDescriptor>(); var referenceNames = (context.ReferencesByModule.ContainsKey(activatedExtension.Descriptor.Id) ? context.ReferencesByModule[activatedExtension.Descriptor.Id] : Enumerable.Empty<ExtensionReferenceProbeEntry>()) .Select(r => r.Name) .Distinct(StringComparer.OrdinalIgnoreCase); var referencesDecriptors = new List<DependencyReferenceDescriptor>(); foreach (var referenceName in referenceNames) { ProcessExtensionReference(context, referenceName, referencesDecriptors); } return referencesDecriptors; }
private DateTime? GetVirtualPathDepedenciesModificationTimeUtc(ConcurrentDictionary<string, DateTime> virtualPathDependencies, ExtensionProbeEntry probe) { if (!probe.VirtualPathDependencies.Any()) return null; Logger.Information("正在修改扩展 '{0}' 依赖项的日期", probe.Descriptor.Id); var result = probe.VirtualPathDependencies.Max(path => GetVirtualPathModificationTimeUtc(virtualPathDependencies, path)); Logger.Information("完成扩展 '{0}' 依赖项的日期修改", probe.Descriptor.Id); return result; }