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));
 }