Files
Hyperbar/Hyperbar.UI.Windows/TemplateFactory.cs
T
TheXamlGuy 110ac407f5 tidy up
2024-02-04 18:24:20 +00:00

23 lines
614 B
C#

using Microsoft.Extensions.DependencyInjection;
namespace Hyperbar.UI.Windows;
public class TemplateFactory(IEnumerable<IContentTemplateDescriptor> descriptors,
IServiceProvider provider) :
ITemplateFactory
{
public object? Create(object key)
{
if (descriptors.FirstOrDefault(x => x.Key == key)
is IContentTemplateDescriptor descriptor)
{
if (provider.GetRequiredKeyedService(descriptor.TemplateType,
descriptor.Key) is { } template)
{
return template;
}
}
return default;
}
}