Patrón de objeto de transferencia de datos

Lo siento, soy novato en la aplicación empresarial, así como en el patrón de diseño. Podría ser esta pregunta que surja la falta de conocimiento sobre el patrón de diseño. Encontré que es mejor usar DTO para transferir datos.

mi clase de entidad de negocios como a continuación:

public class Patient
{    
    public string ID { get; set; }
    public string FullName { get; set; }
    public string FirstName { get; set; }
    public string Surname { get; set; }
}

así que en mi aplicación el usuario solo da ID y HospitalID. por lo que requiere otro servicio web y obtener información personal

 public class PersonDTO
 {
     public string NIC { get; set; }
     public string FullName { get; set; }
     public string FirstName { get; set; }
     public string BirthPlace { get; set; }
     public string BirthCertificateID { get; set; }
 }

Así que en base a esta información voy al objeto del paciente. (Usando el patrón DTO)

Así que pensé en escribir una nueva clase para convertir esto de la siguiente manera.

public class PatientDO
{
    public static Patient ConvertToEntity(
        PatientRegistrationDTO pregDTO,
        PersonDTO person
    )
    {
        Patient p = new Patient();
        p.NIC = pregDTO.NIC;
        p.FullName = person.FullName;
        p.FirstName = person.FirstName;
        return p;
    }
}

pero últimamente leo pocosartículosy usaronSerializer Helper class así como elXmlSerializer No puedo entender por qué usaron algo así.

para el patrón DTO es que es necesario usar XmlSerializer y por qué se usa?

Respuestas a la pregunta(3)

Su respuesta a la pregunta