Utilizando reflexión para recortar todas las cadenas de un objeto.
Esta implementación solamente maneja las cadenas de texto en el nivel superior de la solicitud (Request) – necesito manejar las cadenas de texto de nivel anidado de Friend también.
private static T TrimWhiteSpaceOnRequest<t>(T obj)
{
if (obj != null)
{
PropertyInfo[] properties = obj!.GetType().GetProperties();
foreach (PropertyInfo property in properties) {
try
{
if (property.PropertyType == typeof(string))
{
var o = property.GetValue(obj, null) ?? "";
string s = (string)o;
property.SetValue(obj, s.Trim());
}
else
{
// manejar el objeto Friend anidado aquí
}
}
catch (Exception)
{
log.info("Error al convertir el campo " + field.getName());
}
}
}
return obj;
}
¿Qué puedo poner en el else para acceder a la capa anidada?
davy.ai
Puede utilizar el método
GetType()
para comprobar el tipo de la propiedad y si se trata de un objetoFriend
, puede utilizar el métodoTrimWhiteSpaceOnRequest()
para eliminar los espacios en blanco de las cadenas dentro del modelo anidado.