Activator.CreateInstance () - PullRequest
       9

Activator.CreateInstance ()

4 голосов
/ 28 октября 2009

Я использовал Activator.CreateInstance () в некоторых моих кодах. Есть ли риск сделать экземпляр с помощью этого?

1 Ответ

12 голосов
/ 28 октября 2009

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

Если вы можете разработать вокруг него использование строго типизированных фабрик, это будет предпочтительным по-разному, но я полностью понимаю, что это не всегда уместно. По сути, это должно быть что-то вроде последней возможности, когда нормальные шаблоны проектирования вас не устраивают, но это вполне разумная последняя возможность:)

Есть ли у вас какие-либо конкретные проблемы?

...