Ответ, в котором упоминаются интерфейсы, является правильным - но если вам нужно иметь возможность создавать оба типа из обоих проектов, вам нужно либо внедрить фабрику в еще один проект (который также будет ссылаться на проект интерфейсов, но может бытьна которые ссылаются оба ваших главных проекта) или значительно измените используемую вами структуру.
Что-то вроде этого должно работать:
Finance: References Billing, Interfaces, Factory
Billing: References Finance, Interfaces, Factory
Factory: References Interfaces
Фабрика будет иметь BillingFactory.CreateInstance() As Interfaces.IBilling
, а также рефератКласс биллинга, который реализует Interfaces.IBilling.
Единственная проблема, которую я вижу, это то, что вам нужно сделать что-то умное при создании экземпляра объекта и не хотите, чтобы эта логика заканчивалась в отдельном проекте - но, как выне упомянул какой-либо умной логики для создания экземпляра, этого должно быть достаточно