利用反射获得每一个字段,判断如果为string的
public (bool, string) GetPropertyValue(TrayMessage trayMessage)
{
foreach (PropertyInfo pi in trayMessage.GetType().GetProperties())
{
if (pi.PropertyType == typeof(string))
{
string value = (string)pi.GetValue(trayMessage);
DescriptionAttribute sdf = Attribute.GetCustomAttribute(pi,typeof(DescriptionAttribute)) as DescriptionAttribute;
string sre = sdf.Description;
if (string.IsNullOrEmpty(value))
{
return (false, sre+"不能为空!");
}
}
}
return (true, null);
}
对象
/// <summary>
/// 获得编号
/// </summary>
/// <returns></returns>
public class TrayMessage
{
/// <summary>
/// 物料编码
/// </summary>
[Description("物料编码")]
public string materielcode { get; set; }
/// <summary>
/// 批次号
/// </summary>
[Description("批次号")]
public string batchcode { get; set; }
/// <summary>
/// 托盘号
/// </summary>
[Description("托盘号")]
public string traycode { get; set; }
/// <summary>
/// 数量
/// </summary>
[Description("数量")]
public int qty { get; set; }
/// <summary>
/// 计划数量
/// </summary>
[Description("计划数量")]
public int qtyplan { get; set; }
/// <summary>
/// 入库计划单单号
/// </summary>
[Description("入库计划单单号")]
public string receiptnoticecode { get; set; }
/// <summary>
/// 追溯码
/// </summary>
[Description("追溯码")]
public string tracecode { get; set; }
/// <summary>
/// 质检状态
/// </summary>
[Description("质检状态")]
public string materielstatus { get; set; }
/// <summary>
/// 单位
/// </summary>
[Description("单位")]
public string unit { get; set; }
/// <summary>
/// 类型
/// </summary>
[Description("类型")]
public string type { get; set; }
}
通过这种方式获得描述信息
DescriptionAttribute sdf = Attribute.GetCustomAttribute(pi,typeof(DescriptionAttribute)) as DescriptionAttribute;
string sre = sdf.Description;