omportamento @AutoFixture IEnumerable <T> com CreateMany ()

Quando olha o postAqu, parece que eu consigo criar vários objetos usandoCreateMany(), itere sobre eles usandoforeach e, em seguida, retorne-os como uma matri

O que estou vendo é que cada iteração parece criar novos objetos a cada vez. Esse comportamento é esperado?

Entidade a criar:

public class TestEntity
{
    public int Id { get; private set; }
    public string SomeString { get; set; }
    public void SetId(int value)
    {
        this.Id = value;
    }
}

Sample Program.cs:

private static int id;

static void Main(string[] args)
{
    var fixture = new Fixture();
    IEnumerable<TestEntity> testEntities = 
      fixture.Build<TestEntity>().CreateMany(5);

    Output(testEntities);

    foreach (var testEntity in testEntities)
    {
        testEntity.SetId(id++);
        Console.WriteLine(
          string.Format("CHANGED IN FOREACH:: hash: {0}, id: {1}, string: {2}", 
          testEntity.GetHashCode(), testEntity.Id, testEntity.SomeString));
    }

    Output(testEntities);
}

private static void Output(IEnumerable<TestEntity> testEntities)
{
    foreach (var testEntity in testEntities)
    {
        Console.WriteLine(
          string.Format("hash: {0}, id: {1}, string: {2}", 
          testEntity.GetHashCode(), testEntity.Id, testEntity.SomeString));
    }
}

Criei um problemaAqu (que provavelmente pode ser excluído se esse for o comportamento esperado

Edit 2011-06-02

Para obter o comportamento que eu esperava, e se não quiser modificar o comportamento do AutoFixture, posso usar um método de extensão:

var fixture = new Fixture();
TestEntity[] testEntities = fixture.Build<TestEntity>().CreateMany(5).ToArray();

questionAnswers(1)

yourAnswerToTheQuestion