Я нахожусь на ранней стадии реализации очень простого статического вспомогательного класса «проектирование по контракту», подобного Assert
в NUnit. В идеале я хочу передать выражение, проверить, верно ли оно, а если нет, выдать конкретное исключение с любыми параметрами или сообщениями об ошибках. В идеальном мире Я бы делал что-то вроде этого:
// ideal
Assert.True<ArgumentNullException>(user != null, "User", "User cannot be null");
// not so ideal
Assert.True(user != null, new ArgumentNullException("User", "User cannot be null");
Теперь моя проблема в том, что ограничение на Assert.True<T>
будет Exception, new()
, чтобы я мог создать новое исключение желаемого типа. Ключевая проблема, с которой я сталкиваюсь, заключается в том, что, во-первых, универсальные конструкторы не допускают параметры, а во-вторых, большинство свойств конструкторов Exception
имеют только GET.
Любая помощь очень ценится, спасибо.