Звучит во многом как инъекция зависимости.Обычно вы выставляете SettingsHelper как интерфейс (ваш контракт) и программируете против этого.Затем DI-контейнер, такой как Ninject, StructureMap или Windsor, подключит реализацию этого интерфейса к соответствующим частям вашего кода на основе конфигурации.
Это позволит вам кодировать против известного контракта и предоставлять различныеВ зависимости от обстоятельств библиотеки DI могли бы затем использовать эту библиотеку для получения конкретной реализации интерфейса.
Нужны ли вам оба экземпляра одновременно?
Обратите внимание, что вы не можете использоватьключевое слово partial
в разных сборках, только внутри сборки.
Обновление: на основе вашего комментария звучит так, как будто вы хотите сделать что-то вроде Composition.Имейте класс, который берет оба класса из любой библиотеки и объединяет их в один класс, который может использоваться вашим приложением.Независимо от того, настроите ли вы его для чего-то особенного или загрузите типы, когда библиотеки присутствуют, все это может быть инкапсулировано в этот новый класс.в MEF:
http://msdn.microsoft.com/en-us/library/dd460648.aspx