I'm not quite sure I follow what you want to do. The adapter returned by your factory might already be an existing one, namely one which is used by the same thread previously, correct? and you now want to enlist that adapter with an existing transactionscope, is that correct?
When an adapter is created, it checks if there's a TransactionScope available and if so, it creates a new resource manager and enlists that one in the scope.
I don't really see the benefit of caching adapter instances. Creating an adapter instance is very fast, as it doesn't do anything fancy when it is instantiated (the first time you instantiate one, it will get the configfile performance hit, but that's only once).