Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void MapStrategies()
- {
- var attributes = Assembly.GetExecutingAssembly()
- .GetTypes()
- .Where(t => t.IsClass
- && t != typeof(DisposableAttribute)
- && typeof(DisposableAttribute).IsAssignableFrom(t));
- foreach (var attribute in attributes)
- {
- string attributeName = attribute.Name;
- string strategyName = attributeName.Substring(0, attributeName.IndexOf("Attribute"));
- IGarbageDisposalStrategy strategy = GetStrategy(strategyName);
- this.garbageProcessor.StrategyHolder.AddStrategy(attribute, strategy);
- }
- }
- private IGarbageDisposalStrategy GetStrategy(string strategyName)
- {
- const string StrategySuffix = "Strategy";
- var strategyNamespace = typeof(GarbageDisposalStrategy).Namespace;
- var strategyType = Type.GetType($"{strategyNamespace}.{strategyName + StrategySuffix}");
- var strategy = (IGarbageDisposalStrategy)Activator.CreateInstance(strategyType);
- return strategy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement