/// <summary> /// 探测引用。 /// </summary> /// <param name="descriptor">扩展描述符条目。</param> /// <returns>扩展音域探测条目集合。</returns> public override IEnumerable <ExtensionReferenceProbeEntry> ProbeReferences(ExtensionDescriptorEntry descriptor) { if (Disabled) { return(Enumerable.Empty <ExtensionReferenceProbeEntry>()); } Logger.Information("探测模块 '{0}' 的引用信息", descriptor.Id); var assemblyPath = GetAssemblyPath(descriptor); if (assemblyPath == null) { return(Enumerable.Empty <ExtensionReferenceProbeEntry>()); } var result = _applicationFolder .ListFiles(_applicationFolder.GetDirectoryName(assemblyPath)) .Where(s => StringComparer.OrdinalIgnoreCase.Equals(Path.GetExtension(s), ".dll")) .Where(s => !StringComparer.OrdinalIgnoreCase.Equals(Path.GetFileNameWithoutExtension(s), descriptor.Id)) .Select(path => new ExtensionReferenceProbeEntry { Descriptor = descriptor, Loader = this, Name = Path.GetFileNameWithoutExtension(path), VirtualPath = path }) .ToList(); Logger.Information("完成模块 '{0}' 的引用探测", descriptor.Id); return(result); }