I would go with something like
public interface IToaster<T> {}
Scan(x =>
{
x.Assembly("MVCDemo");
x.Assembly("MVCDemo.Infrastructure");
x.Assembly("MVCDemo.Services");
x.AddAllTypesOf(typeof(IToaster<>))
});
The key here is that this approach uses the non-generic overload of AddAllTypesOf (). Otherwise, it will become sticky widgets.
See this SO thread for a good discussion around these issues: StructureMap Automatically register for generic types using Scan
This should do the trick, if only something about your approach is missing me - feel free to update if that is the case.