public ActionDefinitionProvider(IListOfTypesProvider provider) { foreach (Type type in provider.Get(typeof(IExecutable))) { var definition = new ActionDefinition(type.FullName); actions.Add(definition.Name, definition); object[] consumed = type.GetCustomAttributes(typeof(ConsumedAttribute), true); object[] published = type.GetCustomAttributes(typeof(PublishedAttribute), true); object[] description = type.GetCustomAttributes(typeof(DescriptionAttribute), true); if (description.Length == 1) definition.Description = (description[0] as DescriptionAttribute).Description; foreach (PublishedAttribute one in published) definition.Outputs.Add(one.Category); foreach (ConsumedAttribute one in consumed) definition.Inputs.Add(one.Category); } }
public ActionListProvider(IListOfTypesProvider provider) { foreach (Type type in provider.Get(typeof(IExecutable))) actions.Add(type.FullName, (IExecutable)type.Assembly.CreateInstance(type.FullName)); }