It sounds like this would do the job:
var type = Assembly.GetExecutingAssembly().GetType(attribute);
return Activator.CreateInstance(type);
Using the CreateInstance(Type)
overload guarantees that the assembly defining the type is already loaded, so that overload is free to return a straight object
.