2009-04-14 9 views
8

Hace algo o solo para documentación. Si solo es para documentación, ¿por qué la documentación no lo documenta?¿Qué hace ReliabilityContractAttribute?

Por ejemplo, estos dos métodos estáticos de System.Array:

[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] 
public static void Copy(Array sourceArray, Array destinationArray, int length) 

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] 
public static void ConstrainedCopy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length) 

Su documentación de MSDN generada ni siquiera menciona que Copy o ConstrainedCopy están anotadas.

Respuesta

8

Creo que también se utilizan para regiones de ejecución restringidas, por lo que el CLR sabe lo que puede hacer de manera segura. Hay ciertas cosas que su código no puede hacer dentro del CER, y a cambio el CLR garantiza que no se lanzan ciertas excepciones fuera de banda.

MSDN tiene más detalles.

+0

Sí. Eso es todo. – Prankster

+0

El enlace está roto ... –

+0

@PavelMayorov: vinculado a una página de MSDN que parece razonable; No sé si la página de la revista * de MSDN todavía existe en alguna parte. –

2

De MSDN:

El atributo ReliabilityContractAttribute proporciona un mecanismo para que para documentar su código, y para indicar qué tipo de garantías de fiabilidad usted puede hacer frente a la condiciones excepcionales que podrían puede conducir a un estado inconsistente . En este contexto, excepcionales condiciones se definen como asíncronos excepciones que se pueden generar en tiempo de ejecución por el lenguaje común tiempo de ejecución, tales como hilos abortados, situaciones fuera de la memoria, y la pila desbordamientos. Puede aplicar el atributo ReliabilityContractAttribute en ensamblados, tipos y métodos.

Utilice este atributo con la enumeración consistencia para definir un contrato fiabilidad mediante la documentación el nivel de fiabilidad en una pieza en particular de código.

+0

Sí. He leído esto Entonces, ¿por qué se ignora esta documentación? – Prankster