Na aula 09 - Nova refatoração com testes, desenvolvi uma solução diferente da proposta de criar o Pet à partir de um texto. Ao invés de criar uma extensão do tipo string, que num projeto maior poderia se perder do objetivo de deixar o projeto enxuto, eu criei um método estático na classe Pet.
/// arquivo Alura.Adopet.Console.Modelos -> Pet
public static Pet FromText(string petTextCsv)
{
string[]? propriedades = petTextCsv.Split(';');
// cria objeto Pet a partir da separação
Pet pet = new Pet(Guid.Parse(propriedades[0]),
propriedades[1],
int.Parse(propriedades[2]) == 1 ? TipoPet.Gato : TipoPet.Cachorro
);
return pet;
}
Não sei se essa forma será mostrada, mas considero uma boa prática.