public class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
......
var emp1Address = new Address();
emp1Address.AddressLine1 = "Microsoft Corporation";
emp1Address.AddressLine2 = "One Microsoft Way";
emp1Address.City = "Redmond";
emp1Address.State = "WA";
emp1Address.Zip = "98052-6399";
Considere la clase superior y luego su inicialización. Ahora en algún momento quiero registrar su estado cuando se produce un error. Me gustaría obtener el registro de cadenas de algún modo a continuación.Estado de registro del objeto. Obteniendo todos sus valores de propiedad como cadena
string toLog = Helper.GetLogFor(emp1Address);
sting toLog debería tener el siguiente aspecto.
AddressLine1 = "Microsoft Corporation";
AddressLine2 = "One Microsoft Way";
City = "Redmond";
State = "WA";
Zip = "98052-6399";
Y entonces voy a entrar toLog
cadena.
¿Cómo puedo acceder a todos los nombres de propiedades y valores de propiedad de un objeto dentro del método Helper.GetLogFor()
?
solución que he implementado: -
/// <summary>
/// Creates a string of all property value pair in the provided object instance
/// </summary>
/// <param name="objectToGetStateOf"></param>
/// <exception cref="ArgumentException"></exception>
/// <returns></returns>
public static string GetLogFor(object objectToGetStateOf)
{
if (objectToGetStateOf == null)
{
const string PARAMETER_NAME = "objectToGetStateOf";
throw new ArgumentException(string.Format("Parameter {0} cannot be null", PARAMETER_NAME), PARAMETER_NAME);
}
var builder = new StringBuilder();
foreach (var property in objectToGetStateOf.GetType().GetProperties())
{
object value = property.GetValue(objectToGetStateOf, null);
builder.Append(property.Name)
.Append(" = ")
.Append((value ?? "null"))
.AppendLine();
}
return builder.ToString();
}
¿Había alguna razón para no usar ¿publicación por entregas? –
Lo quería en formato legible para que cada vez que tuviera que ver los registros, pudiera ver rápidamente cuáles eran los valores en cualquier propiedad del objeto en el momento del error. – IsmailS