diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2024-01-26 15:50:41 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2024-01-26 15:50:41 +0300 |
commit | a0a1c23c4d313d7c78b7cc6b7d6a108c3dad04ca (patch) | |
tree | bb59790dd64ced3a9470ff9a4c64e1f3fbbc2fdb /RhSolutions.MLModifiers/MLModifiersRegistration.cs | |
parent | 2befa6a2a06c2cb719fb4b91f99eca6cd9a565de (diff) |
Add ML Modifiers with attribute
Diffstat (limited to 'RhSolutions.MLModifiers/MLModifiersRegistration.cs')
-rw-r--r-- | RhSolutions.MLModifiers/MLModifiersRegistration.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/RhSolutions.MLModifiers/MLModifiersRegistration.cs b/RhSolutions.MLModifiers/MLModifiersRegistration.cs new file mode 100644 index 0000000..57016ea --- /dev/null +++ b/RhSolutions.MLModifiers/MLModifiersRegistration.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using System.Reflection; + +namespace RhSolutions.MLModifiers; + +public static class MLModifiersRegistration +{ + public static void AddModifiers(this IServiceCollection services) + { + var types = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => p.IsDefined(typeof(MLModifierKey), true)); + + foreach (Type t in types) + { + string key = GetModifierKey(t); + services.AddKeyedTransient(typeof(IProductMLModifier), key, t); + } + } + + private static string GetModifierKey(Type t) + { + return t.GetCustomAttribute<MLModifierKey>()?.Value ?? string.Empty; + } +}
\ No newline at end of file |