Как использовать контракты кода при наследовании от таких интерфейсов, как IDictionary ?

Один класс, который я пишу, реализует IDictionary . В моей реализации CopyTo я хотел бы использовать контракты кода: такие вещи, как Contract.Requires (array! = Null) .

Но я получаю это предупреждение (некоторые пространства имен удалены для удобства чтения):

Метод ' LuaDictionary.CopyTo (KeyValuePair [], Int32) ' реализует метод интерфейса ' ICollection >. CopyTo (KeyValuePair [], Int32) ', поэтому невозможно добавить Требуется .

Я вижу, что есть некоторые связанные вопросы, но все они, похоже, связаны с интерфейсами, которые находятся под контролем пользователя. Очевидно, что IDictionary не находится под моим контролем, поэтому я не могу аннотировать его с помощью ContractClassFor или чего-то подобного.

Так я просто не могу использовать здесь кодовые контракты? Если так ... крупный облом ...

7
задан Domenic 3 October 2010 в 03:14
поделиться