Get a stainless gun with a stainless barrel.
They come in shiny, polished stainless, satin finish, and matte black. Stainless steel can rust. It's not rust proof. It's rust resistant. i.e. - it takes longer to rust, but can rust with neglect.
I know a lot of people like to keep their gun barrels totally dry because they are worried about oil fouling ammo, which is a valid concern.
However, I live in WA State where it rains 2/3 of the days of the year. So I have to have a more aggressive rust prevent attitude.
Hoppes #9 is a brand, not a product. I recently learned this. I used to think Hoppes was the brand and #9 was the product. NO. The brand is Hoppes #9.
There are many different Hoppes #9 solvents. I use two. I have the classic powder solvent that I use each time I clean the gun. I also have the copper and lead remover, which I use only occasionally (every 10th cleaning or so).
The powder solvent is mostly kerosene and it is also a rust inhibitor. It says right on the bottle to "annoint the bore" after cleaning to prevent rust. That means that after you've got the bore totally clean and run dry patches through it, then run one more patch through it with a bit of the #9 powder solvent on it. This prevents rust by leaving a very light oily kerosene residue in the barrel. It is OK to fire the gun with that very light residue in there.
The residue prevent rust even in regular steel barrel. In a stainless barrel, you are really well protected.
If I know I'm going to the shooting range, then I will run a clean dry patch through the bore to remove the dried on kerosene residue. However, when I carry for SD, I just leave the residue in there for protection from rust. If I have to fire a few mags in SD, the residue will not be a problem because it's much thinner than oil and is just coating the metal.
The reason I wipe out the residue before target shooting is that the barrel might foul within 50 - 75 rounds, if I leave the residue in before firing. If I wipe the barrel bone dry before firing (one dry patch is plenty), then I can shoot 200 rounds before the barrel fouls.
For self defense carry, I leave the residue in for rust protection. If I have to shoot, I know the barrel won't powder foul for at least 50 to 75 rounds, which is more than enough for SD.
There is NO danger of the residue fouling my ammo in a revolver because I only put residue in the barrel, not in the cylinder holes. I keep the cylinder holes dry. This is why I prefer stainless revolvers.
In an auto, there is a theoretical chance of fouling the first round in the chamber, but not the magazine. I'm running an experiment on that right now by leaving an auto handgun chambered for 3 months with the residue in the bore. Then I'll test fire it at the range. I don't see how it can foul the cartridge because the film is so thin in the barrel and chambor.
I can definately recommend the Hoppes #9 powder solvent LIGHT residue in the bore for revolvers for SD carry. I cannot say yet about autos since my test of autos is in progress. I think it will prove fine for autos too.
================================================
P.S. - the Hoppes #9 Copper and Lead remover is another animal entirely. It clearly says on that bottle NOT to leave any in the bore or anywhere else. It says to remove it all. I think it might damage bore if left in there. So after the Copper and Lead remover, which I only use occasionally, I then wipe dry with dry patch, then annoint bore with Hoppes #9 powder solvent.
A stainless revolver with an annointed bore seems the best for really wet conditions to me.
Does this help?