que quieren imponer a mi regla inmutable base de código con la siguiente pruebaLos objetos inmutables .net
[TestFixture]
public class TestEntityIf
{
[Test]
public void IsImmutable()
{
var setterCount =
(from s in typeof (Entity).GetProperties(BindingFlags.Public | BindingFlags.Instance)
where s.CanWrite
select s)
.Count();
Assert.That(setterCount == 0, Is.True, "Immutable rule is broken");
}
}
Pasa para:
public class Entity
{
private int ID1;
public int ID
{
get { return ID1; }
}
}
pero no lo hace para esto:
public class Entity
{
public int ID { get; private set; }
}
Y aquí va la pregunta "¿WTF?"
La prueba de GetMeetMethod (true)! = Null es superflua porque CanWrite == true garantiza la existencia de un setter. –
Es cierto, "s.GetSetMethod (true)! = Null" es equivalente a que CanWrite sea verdadero, por lo que uno de ellos es redundante. He eliminado CanWrite porque quiero ser explícito al probar null antes de eliminar la referencia de la propiedad IsPrivate. – Joe