Una clase estoy escribiendo implementos IDictionary<string, object>
. En mi implementación CopyTo
, me gustaría usar contratos de código: cosas como Contract.Requires<ArgumentNullException>(array != null)
.¿Cómo usar contratos de código cuando se deriva de interfaces como IDictionary <T, U>?
Pero, me sale esta advertencia (con algunos espacios de nombres retirados para facilitar la lectura):
Método 'LuaDictionary.CopyTo(KeyValuePair<String,Object>[],Int32)
' implementa método de interfaz 'ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[],Int32)
', por lo que no se puede agregar Requires
.
Veo que hay algunas preguntas relacionadas, pero todas parecen tener que ver con interfaces que están bajo el control del usuario. Obviamente, IDictionary<T, U>
no está bajo mi control, así que no puedo anotarlo con ContractClassFor
ni nada de eso.
Entonces, ¿no puedo usar contratos de código aquí? Si es así ... gran fastidio ...
pena señalar que esta información es ahora visible usando el plugin "Código Extensiones contratos Editor" para VS: http://visualstudiogallery.msdn.microsoft.com/85f0aa38-a8a8-4811-8b86 -e7f0b8d8c71b / – porges