public virtual Repository Load()
{
var repository = new Repository();
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (IsDesiredAssembly(assembly))
{
foreach (var type in assembly.GetTypes())
{
foreach (var method in type.GetMethods(StepDefinition.MethodFlags))
{
if (StepDefinition.IsValidMethod(method))
{
repository.StepDefinitions.Add(new StepDefinition(method));
_objectFactory.AddClass(method.ReflectedType);
}
if (BeforeHook.IsValidMethod(method))
{
repository.BeforeHooks.Add(new BeforeHook(method));
_objectFactory.AddClass(method.ReflectedType);
}
if (AfterHook.IsValidMethod(method))
{
repository.AfterHooks.Add(new AfterHook(method));
_objectFactory.AddClass(method.ReflectedType);
}
}
}
}
}
return(repository);
}