Dazu benötigt man den Klassennamen und den kompletten Assembly-Namen
String typeName = "Klassenname";
String assemblyName = "Assembly Name");
ObjectHandle webPartHandle = Activator.CreateInstance(assemblyName, typeName);
WebPart webPart = (WebPart)webPartHandle.Unwrap();
webParts[0].GetFormattedValue("WebPartTypeName")
Die Werte für typeName und Assembly können auch über eine Query auf die WebPartGallery ermittelt werden
SPQuery query = new SPQuery();
query.Query = string.Format("{0}", webpartname);
SPList webPartGallery = this.site.RootWeb.GetCatalog(SPListTemplateType.WebPartCatalog);
SPListItemCollection webParts = webPartGallery.GetItems(query);
String typeName =webParts[0].GetFormattedValue("WebPartTypeName");
String assemblyName = webParts[0].GetFormattedValue("WebPartAssembly");