You could use the achievement tracker + other methods of having more than one HUD crosshair and instead of a crosshair just have the name of your weapon. or you could go full crazy and make a font file with an icon of the weapon instead of using text for the name. This would really only work for one class at a time though. You could have it say PRIMARY, SECONDARY, MELEE if you wanted an all class solution.
I just use colour coded crosshairs, yellow for primary, green for secondary, red for melee.