Code Contracts + Sandcastle - Есть ли способ настроить раздел исключений? - PullRequest
7 голосов
/ 13 декабря 2011
  • Я использую Code Contracts ver: 1.4.40602.0
  • Я скопировал необходимое содержимое и файлы преобразований
  • Sandcastle выводит исключения, основываясь на моих требованиях к контракту

Пример кода:

public class MyClass
{
    public MyClass(Object obj)
    {
        Contract.Requires<ArgumentNullException>(obj != null);
    }
}

Результирующий вывод (в моей документации):

| Exception                       | Condition                       |
|---------------------------------|---------------------------------|
| System.ArgumentNullException    | obj == null                     |

Это не , что плохо, однако мне интересноесть ли способ настроить текст условия?Я попытался добавить сообщение пользователя Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");, но это ничего не решило.

Раньше мне приходилось писать собственный раздел документации xml для исключений.Я собираюсь сделать это снова, чтобы получить то, что мне нужно?


Отказ от ответственности: Поскольку Code Contracts (в настоящее время) является проектом DevLabs, это может измениться, но мне интересно, если он уже доступенпрямо сейчас ... если нет, я обязательно предложу.

1 Ответ

3 голосов
/ 13 декабря 2012

С Code Contracts 1.4.51019.0 вы можете использовать перегрузку:

Requires<TException>(bool condition, string userMessage)

Тем не менее, ваше сообщение будет добавлено после «Предварительное условие не выполнено», за которым следует непревзойденное условие. Если Sandcastle не распознает это, я считаю, что это не ошибка в Code Contracts, так как сообщение отображается правильно для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...