Ответ 1
Я знаю, что это прямо не отвечает на ваш вопрос, но, похоже, вы используете устаревший режим для кодовых контрактов.
В этом документе описывается рекомендуемый режим сборки на основе требований к использованию:
http://research.microsoft.com/en-us/projects/contracts/userdoc.pdf
Из стр. 20, 21...
Другой фрагмент документа:
5.1.1 Режим сборки
Инструменты контрактов должны знать, какой режим использования вы выберете. Если вы используете VisualStudio, выберите режим Assemby на панели свойств контракта следующим образом:
- Использование 1 или 2: стандартный контракт требует
- Использование 3: Пользовательская проверка параметров
Это позволяет инструментам испускать правильные предупреждения, когда вы нарушаете правила использования. Если вы используете инструменты из командной строки передать правильный аргумент для опции -assemblyMode
Таким образом, используя режим сборки "Стандартный контракт требуется", вы можете выполнить одно из следующих действий:
Contract.Requires<ArgumentException>(a < 0, "a");
// OR
Contract.Requires(a < 0, "a should be negative");
Ни один из них не генерирует никаких предупреждений для меня.
Надеюсь, это все равно поможет.
Приветствия peteski