According to MSDN class means that T must be a reference type; this applies also to any class, interface, delegate, or array type.
One work around would be to require that T implements the parameter less constructor so:
where T : class, IProfile, new()