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