Fixed InitializationScoped
This commit is contained in:
@@ -1,6 +1,4 @@
|
|||||||
namespace Toolkit.Foundation;
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
public interface IInitializationScoped
|
public interface IInitializationScoped :
|
||||||
{
|
IInitialization;
|
||||||
void Initialize();
|
|
||||||
}
|
|
||||||
@@ -62,12 +62,16 @@ public static class IServiceCollectionExtensions
|
|||||||
if (key is { Length: > 0 })
|
if (key is { Length: > 0 })
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage, TResponse>), key, typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage, TResponse>), key, typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<AsyncHandlerKeyedInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>(key);
|
services.AddInitializationScoped<AsyncHandlerKeyedInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>(key);
|
||||||
|
services.AddInitialization<AsyncHandlerKeyedInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>(key);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage, TResponse>), typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage, TResponse>), typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<AsyncHandlerInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>();
|
services.AddInitializationScoped<AsyncHandlerInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>();
|
||||||
|
services.AddInitialization<AsyncHandlerInitialization<TMessage, TResponse, IAsyncHandler<TMessage, TResponse>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
@@ -85,12 +89,16 @@ public static class IServiceCollectionExtensions
|
|||||||
if (key is { Length: > 0 })
|
if (key is { Length: > 0 })
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage>), key, typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage>), key, typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<AsyncHandlerKeyedInitialization<TMessage, IAsyncHandler<TMessage>>>(key);
|
services.AddInitializationScoped<AsyncHandlerKeyedInitialization<TMessage, IAsyncHandler<TMessage>>>(key);
|
||||||
|
services.AddInitialization<AsyncHandlerKeyedInitialization<TMessage, IAsyncHandler<TMessage>>>(key);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage>), typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IAsyncHandler<TMessage>), typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<AsyncHandlerInitialization<TMessage, IAsyncHandler<TMessage>>>();
|
services.AddInitializationScoped<AsyncHandlerInitialization<TMessage, IAsyncHandler<TMessage>>>();
|
||||||
|
services.AddInitialization<AsyncHandlerInitialization<TMessage, IAsyncHandler<TMessage>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
@@ -220,12 +228,16 @@ public static class IServiceCollectionExtensions
|
|||||||
if (key is { Length: > 0 })
|
if (key is { Length: > 0 })
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage>), key, typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage>), key, typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<HandlerKeyedInitialization<TMessage, IHandler<TMessage>>>(key);
|
services.AddInitializationScoped<HandlerKeyedInitialization<TMessage, IHandler<TMessage>>>(key);
|
||||||
|
services.AddInitialization<HandlerKeyedInitialization<TMessage, IHandler<TMessage>>>(key);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage>), typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage>), typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<HandlerInitialization<TMessage, IHandler<TMessage>>>();
|
services.AddInitializationScoped<HandlerInitialization<TMessage, IHandler<TMessage>>>();
|
||||||
|
services.AddInitialization<HandlerInitialization<TMessage, IHandler<TMessage>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
@@ -240,15 +252,21 @@ public static class IServiceCollectionExtensions
|
|||||||
string? key = null) where THandler : class, IHandler<TMessage, TResponse>
|
string? key = null) where THandler : class, IHandler<TMessage, TResponse>
|
||||||
where TMessage : class
|
where TMessage : class
|
||||||
{
|
{
|
||||||
|
services.AddHandler<TMessage, TResponse, THandler>(lifetime, key);
|
||||||
|
|
||||||
if (key is { Length: > 0 })
|
if (key is { Length: > 0 })
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage, TResponse>), key, typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage, TResponse>), key, typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<HandlerKeyedInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>(key);
|
services.AddInitializationScoped<HandlerKeyedInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>(key);
|
||||||
|
services.AddInitialization<HandlerKeyedInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>(key);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage, TResponse>), typeof(THandler), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage, TResponse>), typeof(THandler), lifetime));
|
||||||
|
|
||||||
services.AddInitializationScoped<HandlerInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>();
|
services.AddInitializationScoped<HandlerInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>();
|
||||||
|
services.AddInitialization<HandlerInitialization<TMessage, TResponse, IHandler<TMessage, TResponse>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
@@ -294,7 +312,7 @@ public static class IServiceCollectionExtensions
|
|||||||
where TInitializationImplementation : class, IInitializationScoped
|
where TInitializationImplementation : class, IInitializationScoped
|
||||||
{
|
{
|
||||||
services.Add(new ServiceDescriptor(typeof(IInitializationScoped), typeof(TInitializationImplementation), lifetime));
|
services.Add(new ServiceDescriptor(typeof(IInitializationScoped), typeof(TInitializationImplementation), lifetime));
|
||||||
services.AddTransient<IInitializationScoped>(provider => provider.GetRequiredService<IInitializationScoped>());
|
services.AddTransient(provider => provider.GetRequiredService<IInitializationScoped>());
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,18 @@ public static class ContentTemplateBinding
|
|||||||
{
|
{
|
||||||
cachedActivation = null;
|
cachedActivation = null;
|
||||||
content.Unloaded -= HandleUnloaded;
|
content.Unloaded -= HandleUnloaded;
|
||||||
|
content.DataContextChanged -= HandleDataContextChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleDataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
|
||||||
|
{
|
||||||
|
if (sender is FrameworkElement content)
|
||||||
|
{
|
||||||
|
if (content.DataContext is IActivation activation)
|
||||||
|
{
|
||||||
|
activation.IsActive = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,11 +69,13 @@ public static class ContentTemplateBinding
|
|||||||
{
|
{
|
||||||
content.Loaded += HandleLoaded;
|
content.Loaded += HandleLoaded;
|
||||||
content.Unloaded += HandleUnloaded;
|
content.Unloaded += HandleUnloaded;
|
||||||
|
content.DataContextChanged += HandleDataContextChanged;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
content.Loaded -= HandleLoaded;
|
content.Loaded -= HandleLoaded;
|
||||||
content.Unloaded -= HandleUnloaded;
|
content.Unloaded -= HandleUnloaded;
|
||||||
|
content.DataContextChanged -= HandleDataContextChanged;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user