В этом случае CodeRush
предлагает вам реализовать IDisposable
, потому что ваш класс инкапсулирует ресурс IDisposable
(он видит _proxy
, хотя это не совсем хорошо, так как он статичен).Code Rush считает, что есть тип, который вы используете, который должен быть явно очищен, но вы не предоставляете способ сделать это через ваш класс.
При этом, IDisposable
сложно- и это один из случаев, когда сгенерированный код не является действительно хорошей реализацией (даже если _proxy
была переменной экземпляра).Я бы порекомендовал не использовать деструктор в этом случае.Это вызовет проблемы с производительностью в GC, и в этом случае не поможет с безопасностью, поскольку инкапсулированный ресурс должен обрабатывать тот случай, когда вы забудете вызвать Dispose()
для вас.Подробности см. В моей серии по IDisposable и, в частности, инкапсуляции IDisposable класса .
Кроме того, этот класс не должен реализовать IDisposable
(если нет других причин для этого), учитывая приведенный выше код, поскольку ресурс _proxy
равен static
.Удаление статического ресурса из экземпляра может вызвать проблемы, по крайней мере, в общем случае.(В этом случае это, очевидно, не проблематично, но это не очень хорошая практика ...) Как правило, статическая переменная имеет очень другое время жизни, чем член экземпляра, поэтому ее автоматическое удаление будет неуместным.