public static ValueTask<(IFinder<T> Finder, List<string> ReferenceList, List<string> ActualFoldersList)> CreateWithSubfoldersAsync<T>(
Func<IAssemblyCatalog, IFinder<T>> createFinderFunc,
SessionType sessionType,
string? extensionsFolderPath = null,
bool ignoreEmbeddedPlatformExtensions = false,
bool ignoreSubfolders = false,
CancellationToken cancellationToken = default
)
Public Shared Function CreateWithSubfoldersAsync(Of T) (
createFinderFunc As Func(Of IAssemblyCatalog, IFinder(Of T)),
sessionType As SessionType,
Optional extensionsFolderPath As String = Nothing,
Optional ignoreEmbeddedPlatformExtensions As Boolean = false,
Optional ignoreSubfolders As Boolean = false,
Optional cancellationToken As CancellationToken = Nothing
) As ValueTask(Of (Finder As IFinder(Of T), ReferenceList As List(Of String), ActualFoldersList As List(Of String)))
public:
generic<typename T>
static ValueTask<ValueTuple<IFinder<T>^, List<String^>^, List<String^>^>> CreateWithSubfoldersAsync(
Func<IAssemblyCatalog^, IFinder<T>^>^ createFinderFunc,
SessionType sessionType,
String^ extensionsFolderPath = nullptr,
bool ignoreEmbeddedPlatformExtensions = false,
bool ignoreSubfolders = false,
CancellationToken cancellationToken = CancellationToken()
)
static member CreateWithSubfoldersAsync :
createFinderFunc : Func<IAssemblyCatalog, IFinder<'T>> *
sessionType : SessionType *
?extensionsFolderPath : string *
?ignoreEmbeddedPlatformExtensions : bool *
?ignoreSubfolders : bool *
?cancellationToken : CancellationToken
(* Defaults:
let _extensionsFolderPath = defaultArg extensionsFolderPath null
let _ignoreEmbeddedPlatformExtensions = defaultArg ignoreEmbeddedPlatformExtensions false
let _ignoreSubfolders = defaultArg ignoreSubfolders false
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> ValueTask<ValueTuple<IFinder<'T>, List<string>, List<string>>>
Признак того, что относительно пути extensionsFolderPath не должно выполняться сканирование подпапок на наличии конфигурационных файлов с расширениями (обычно для модулей расширений).
При этом дополнительное сканирование может выполняться в соответствии с тегами <scan/> в конфигурационном файле в папке extensionsFolderPath.
Finder - Искомый тип объектов.
ReferenceList - Список полных путей до сборок, которые необходимо подключить, прежде чем плагины будут загружены.
ActualFoldersList - Список полных путей до папок, в которых была хотя бы одна сборка с расширениями.