If they are alloy then you would need to get them etch primed. I painted an alloy silencer using normal acrylic spray primer and topcoat and it just chipped and flaked off with ease. Used some pretty expensive one part etch primer with the normal acrylic satin black spray paint and that has stayed on for about 8 years now on my BSA volumetric silencer (can be seen in my sig). Just worn away on the knurling of the end cap, which I guess is to be expected.
You can get a very nice finish with spray cans if you build up light coats and denib in between coats with some 600g wet and dry. Also get some tack cloths to remove all the dust after sanding, they are brilliant.