У нас есть класс, скажем LegacyUserSettingsService . LegacyUserSettingsService реализует интерфейс, IUserSettingsService .
Вы можете получить экземпляр IUserSettingsService , позвонив в наш ApplicationServicesFactory. Фабрика использует Spring.NET для создания бетонной LegacyUserSettingsService .
Проблема в том, что новые разработчики иногда делают свое дело и создают новые экземпляры LegacyUserSettingsService напрямую (вместо прохождения через фабрику).
Есть ли способ защитить конструктор конкретного класса, чтобы его можно было вызывать только с завода? Возможно, хорошо известная картина?
Обратите внимание, что конкретный класс находится в другой сборке (отдельно от сборки Factory, поэтому ключевое слово internal не является решением). Заводская сборка ссылается на другую сборку, которая содержит конкретный класс.
Есть идеи?