Я сталкивался с случаями, когда было бы полезно ограничить доступ к API внешних библиотек и сред для предотвращения негативных последствий в системе.
Например, в приложении SharePoint может показаться естественным вызывать spList.Items.GetItemById
элемент списка, даже если он находится в цикле, не осознавая, что это может привести к огромным проблемам с производительностью.
Возможно также, что нам нужно запретить использование SmtpClient, чтобы заставить всех использовать наш собственный класс для отправки электронной почты, чтобы гарантировать, что мы можем правильно прокси и проверять всю электронную почту в тестовой среде.
Существуют ли надежные и достаточно простые способы достижения этих ограничений для внешнего кода, кроме как в определенных местах в нашем собственном коде? Нет необходимости абсолютно ни при каких обстоятельствах предотвращать доступ к этим методам / классам, например, путем отражения или просто какого-либо отключения, это должно быть строгое предупреждение о том, что их не следует использовать. Желательно заставить программиста активно принимать меры по преодолению этих ограничений, если это возможно / необходимо.