too many to add
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using CustomExtensions.WinUI;
|
||||
using Hyperbar.Controls.Windows;
|
||||
using Hyperbar.Controls.Windows;
|
||||
using Hyperbar.UI.Windows;
|
||||
using Hyperbar.Widget;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
@@ -9,17 +8,14 @@ using Microsoft.UI.Dispatching;
|
||||
using Microsoft.UI.Xaml;
|
||||
using System.Reflection;
|
||||
using Hyperbar.Widget.Windows;
|
||||
using Microsoft.UI.Xaml.Markup;
|
||||
|
||||
namespace Hyperbar.Windows;
|
||||
|
||||
public partial class App :
|
||||
Application
|
||||
{
|
||||
public App()
|
||||
{
|
||||
InitializeComponent();
|
||||
ApplicationExtensionHost.Initialize(this);
|
||||
}
|
||||
public App() => InitializeComponent();
|
||||
|
||||
protected override async void OnLaunched(LaunchActivatedEventArgs args)
|
||||
{
|
||||
@@ -37,6 +33,7 @@ public partial class App :
|
||||
services.AddDefault();
|
||||
services.AddWidget();
|
||||
services.AddWidgetWindows();
|
||||
services.AddXamlMetadataProvider();
|
||||
|
||||
services.AddHostedService<AppService>();
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.UI.Xaml;
|
||||
using Microsoft.UI.Xaml.Markup;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Hyperbar.Widget;
|
||||
|
||||
public static class IServiceCollectionExtensions
|
||||
{
|
||||
public static IServiceCollection AddXamlMetadataProvider(this IServiceCollection services)
|
||||
{
|
||||
object? appProvider = Application.Current.GetType().GetProperty("_AppProvider", BindingFlags.NonPublic | BindingFlags.Instance)?
|
||||
.GetValue(Application.Current);
|
||||
|
||||
object? provider = appProvider?.GetType().GetProperty("Provider", BindingFlags.NonPublic | BindingFlags.Instance)?
|
||||
.GetValue(appProvider);
|
||||
|
||||
PropertyInfo? othersProviderProperty = provider?.GetType().GetProperty("OtherProviders", BindingFlags.NonPublic | BindingFlags.Instance,
|
||||
null, typeof(List<IXamlMetadataProvider>), [], null);
|
||||
|
||||
List<IXamlMetadataProvider> xamlMetadataProviders = othersProviderProperty?.GetValue(provider) as List<IXamlMetadataProvider> ?? [];
|
||||
|
||||
services.AddSingleton<IList<IXamlMetadataProvider>>(xamlMetadataProviders);
|
||||
return services;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user