diff --git a/HellionChat/PluginHostFactory.cs b/HellionChat/PluginHostFactory.cs index 36a723d..cdf47e5 100644 --- a/HellionChat/PluginHostFactory.cs +++ b/HellionChat/PluginHostFactory.cs @@ -225,6 +225,36 @@ internal static class PluginHostFactory ); }); + // Factory-lambdas for ChunkRenderer, PayloadHandler, and Lender + // because all three are internal-sealed (ActivatorUtilities can't reflect into + // internal ctors) and Lender has an internal ctor by design. + services.AddSingleton(sp => new Ui.Components.ChunkRenderer( + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService>(), + sp.GetRequiredService() + )); + services.AddSingleton(sp => new PayloadHandler( + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService>() + )); + services.AddSingleton(sp => new Lender(() => + new PayloadHandler( + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService>() + ) + )); + // Block C — Windows. WindowSystem.AddWindow is called from // PluginLifecycle.LoadAsync on the framework thread. services.AddSingleton(sp => new Ui.Windows.SettingsWindow(