зачем создавать объект класса двумя способами

есть подключенная к проекту сборка "PersonInfo" в котором есть файл "Person". Есть способ 1 создания экземпляра класса:

Person p = (Person)Activator.CreateInstance("PersonInfo", "Person").Unwrap();

есть обычный способ 2:

Person p = new Person();

Вопрос: зачем нужен способ 1 если есть простой способ 2 ?


Ответы (1 шт):

Автор решения: aepot

Этот пример несовсем правильный. В первом случае как правило явный тип не используется.

Ответ прост, активатор применяется тогда, когда вы не знаете на этапе компиляции, какой тип объекта в этом месте кода предстоит создать. Помимо активатора есть и другие динамические способы создаия объектов.

А явный вызов конструтора используется, когда на момент написания кода, точно известно, какой тип требуется создать в этом месте.

Вот пример рабочего использования активатора, где явный вызов конструктора никак не подойдёт.

→ Ссылка