public List<Type> FindIEndpointTypes(IEnumerable<Assembly> assemblies = null)
{
assemblies = assemblies ?? GetAssemblies();
var result = new List<Type>();
foreach (var assembly in assemblies)
{
result.AddRange(assembly.GetTypes().Where(type => !type.IsAbstract && !type.IsInterface && typeof (IEndpoint).IsAssignableFrom(type)));
}
return result;
}