Don't forget you can add an empty constructor constraint in c# generics.
public T AssignLiteItem<T>(ArchivingItem archivingItem ) where T : Item, new() {
T myITem = new T();
myITem.ItemReference = new ItemReference(archivingItem.Id);
return myITem;
}
I do wish the compiler handled constraints for arbitrary constructor signatures on generic types, however...