He estado tratando de envolver mi cabeza en torno a esta violación FXCop "DoNotDeclareReadOnlyMutableReferenceTypes"tipos de referencia de sólo lectura inmutables y Violación FXCop: DECLARAR leen tipos de referencia sólo mutables
MSDN: http://msdn.microsoft.com/en-us/library/ms182302%28VS.80%29.aspx
Código de MSDN, que haría hacer que esta violación:
namespace SecurityLibrary
{
public class MutableReferenceTypes
{
static protected readonly StringBuilder SomeStringBuilder;
static MutableReferenceTypes()
{
SomeStringBuilder = new StringBuilder();
}
}
}
de la respuesta de Jon here y here, entiendo que el campo que contiene la referencia al objeto (en este caso SomeStringBuilder) es de solo lectura y no del objeto en sí (creado por new StringBuilder()
)
Tomando este ejemplo, ¿cómo cambiaría el objeto, una vez que el campo tiene una referencia al mismo? Me gusta Eric Lippert's example de cómo se puede cambiar la matriz de sólo lectura, y me gustaría ver algo similar para cualquier otro tipo de referencia mutable
agradable. Fantástico. Perfecto. – ram
Solo un pequeño error: el campo está ** protegido **, no es privado, por lo tanto, es * absolutamente * mutable desde el exterior. Creo que * esto * es a lo que FXCop se opone. –
@Konrad Rudolph: ¡Buena captura! Acabo de ver la primera palabra clave y me di cuenta de que no era un modificador de acceso, y por lo tanto debe haber predeterminado al valor predeterminado (sic). No me di cuenta de que las palabras clave habían cambiado. –