我正在创建一个表单,其字段需要通过电子邮件发送。这是一个内部项目,所以时间紧迫,电子邮件不需要漂亮。
是否有一种快速而肮脏的方法可以将类序列化/格式化为类似于以下的可读字符串:
Field1Name:
This is the value of field1
Field2Name:
value of field 2
我可以写一些反思来做这件事而没有太多问题,但我很好奇.NET 中是否已经内置了一些可以为我做这件事的东西。就像我说的,我正在寻找快速的东西。
我正在创建一个表单,其字段需要通过电子邮件发送。这是一个内部项目,所以时间紧迫,电子邮件不需要漂亮。
是否有一种快速而肮脏的方法可以将类序列化/格式化为类似于以下的可读字符串:
Field1Name:
This is the value of field1
Field2Name:
value of field 2
我可以写一些反思来做这件事而没有太多问题,但我很好奇.NET 中是否已经内置了一些可以为我做这件事的东西。就像我说的,我正在寻找快速的东西。
如果您不想在输出中出现尖括号或花括号,最好的办法是ToString()
为您的类编写一个方法,并在您想要发送字符串表示时调用它。大约需要五分钟。
public override string ToString()
{
return "Field1Name: \n" + field1.ToString() +
"\nField2Name: \n" + field2.ToString() +
"\nField3Name: \n" + field3.ToString() +
"\nNestedObject: \n" + nestedObject.ToString();
}
确保覆盖ToString()
嵌套对象。:)
您可以像这样使用反射:
public static string ClassToString(Object o)
{
Type type = o.GetType();
StringBuilder sb = new StringBuilder();
foreach (FieldInfo field in type.GetFields())
{
sb.Append(field.Name).AppendLine(": ");
sb.AppendLine(field.GetValue(o).ToString());
}
foreach (PropertyInfo property in type.GetProperties())
{
sb.Append(property.Name).AppendLine(": ");
sb.AppendLine(property.GetValue(o, null).ToString());
}
return sb.ToString();
}