Contagem de referência para objetos

No meu código, uso uma pequena classe de armazenamento de dados, criada em locais diferentes. Para evitar vazamentos de memória e simplificar as coisas, quero usar a contagem de referências, então fiz

type TFileInfo = class (TInterfacedObject, IInterface)

e removeu todas as minhas chamadas manuais para TFileInfo.Free. Infelizmente, o Delphi relatou muitos vazamentos de memória. Pesquisando no SO, encontrei a seguinte pergunta explicando por que isso não funciona:

Por que os descendentes do lixo TInterfacedObject não são coletados?

Existe uma solução alternativa apresentada lá, mas ela exige que eu (pelo menos se eu entendi direito) escreva uma interface personalizada IFileInfo e forneça muitos getters e setters, que eu quero evita

EDITA Devo acrescentar que insiro os objetos create FileInfo em dois tipos diferentes de tabelas de hash: uma descendente de TBucketList e outra é uma implementação de mapa de hash do fórum Codegear. Internamente, os dois ponteiros do usuário, portanto, a situação é exatamente como na outra pergunt

xiste outra possibilidade de fazer objetos no Delphi usarem contagem de referênci

questionAnswers(7)

yourAnswerToTheQuestion