don't use yield return

This commit is contained in:
2024-04-30 06:37:45 +02:00
parent 571cfc1d0c
commit 270b8cac3e

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata.Ecma335;
@@ -30,8 +31,12 @@ namespace Pilz.Plugins
/// <returns></returns>
public IEnumerable<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>> LoadPlugins(string[] paths, params object?[]? parameters)
{
var results = new List<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>>();
foreach (var path in paths)
yield return LoadPlugin(path, parameters);
results.Add(LoadPlugin(path, parameters));
return results;
}
/// <summary>
@@ -42,8 +47,12 @@ namespace Pilz.Plugins
/// <returns></returns>
public IEnumerable<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>> LoadPlugins(Assembly[] assemblies, params object?[]? parameters)
{
var results = new List<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>>();
foreach (var assembly in assemblies)
yield return LoadPlugin(assembly, parameters);
results.Add(LoadPlugin(assembly, parameters));
return results;
}
/// <summary>
@@ -53,11 +62,15 @@ namespace Pilz.Plugins
/// <returns></returns>
public IEnumerable<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>> LoadOwnPlugins(bool listenAssemblyLoadContext, params object?[]? parameters)
{
var results = new List<PluginLoadInfo<TPluginInterface, TPluginRuntimeInfo>>();
if (listenAssemblyLoadContext)
AppDomain.CurrentDomain.AssemblyLoad += CurrentDomain_AssemblyLoad;
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
yield return LoadPlugin(assembly, parameters);
results.Add(LoadPlugin(assembly, parameters));
return results;
}
/// <summary>