Я играл с новым классом System.Diagnostics.Contracts, потому что сначала он казался очень полезным. Статические методы проверки входящих аргументов, возвращаемые значения и т.д. Это был чистый интерфейс и мог заменить множество инструкций if-then и встроенных библиотечных инструментов.
Однако он кажется менее полезным в большинстве ситуаций времени исполнения. Из того, что я могу сказать, это не вызывает ошибку, поэтому я не могу поймать ничего, чтобы узнать, не закончился ли контракт. Появится диалоговое окно с ошибкой. Если я запускаю службу wcf на удаленном ящике, на котором редко бывают люди, посмотрим на это... как я узнаю, что контракт не прошел? Если я не могу уловить тот факт, что произошла ошибка, как я могу позволить вызывающему абоненту узнать, что они работают?
Throw-Catch уже давно существует, я не понимаю, почему Контракты хотят обойти это. Я пытаюсь использовать эту вещь неправильно? Если это так, то кто-то дает мне реальную ситуацию, когда соглашение о сроках исполнения имеет смысл. Кен