Mi chiedevo se esiste un approccio raccomandato per inizializzare le proprietà di un oggetto semplice che viene utilizzato per il trasferimento dei dati, ad esempio tramite un'API REST.
Ecco due varianti a cui posso pensare:
public class Dto
{
public string Name { get; set; }
public int Number { get; set; }
}
new Dto {
Name = actualName,
Number = actualNumber
};
vs
public class Dto
{
public string Name { get; private set; }
public int Number { get; private set; }
public Dto(string name, int number)
{
Name = name;
Number = number;
}
}
new Dto(actualName, actualNumber);
or
new Dto(name: actualName,
number: actualNumber);
Vorrei andare per primo, dal momento che è più breve e richiede meno lavoro da mantenere. Tuttavia, le nuove proprietà aggiunte potrebbero essere trascurate da qualcuno che riempie il DTO. Sono anche consapevole del fatto che non rende l'oggetto immutabile, ma dal momento che è solo un DTO, personalmente ritengo che sia meno importante.