0
我有3个co,sto和per的列表。 每个实体都有一个域GUID。 我需要一些方法来生成GUID对于每个列表 像.net中的一些属性的通用填充
public static void FillGuids (List<> list)
{
foreach (var c in list)
{
}
}
请帮助。 谢谢
我有3个co,sto和per的列表。 每个实体都有一个域GUID。 我需要一些方法来生成GUID对于每个列表 像.net中的一些属性的通用填充
public static void FillGuids (List<> list)
{
foreach (var c in list)
{
}
}
请帮助。 谢谢
您可以用通用的方法和反思这样做:
public static void FillGuids<T>(List<T> list)
{
PropertyInfo prop = typeof(T).GetProperty("GUID");
if (prop == null) return; // no GUID property
list.ForEach(x => prop.SetValue(x, Guid.NewGuid()));
}
如果GUID
不是公共财产,但私人领域,你可以使用GetField()
代替:
FieldInfo field = typeof(T).GetField("GUID", BindingFlags.NonPublic);
谢谢,但是你对使用多态性解决这个问题有任何想法吗? – Ovidiu
@Ovidiu与多态性,你需要三种方法参数类型'列表','列表'和'列表',但不需要反射,但可以简单地设置'x.GUID = Guid.NewGuid()',因为这三个类型具有此字段/属性。 –
重点是我需要使用参数列表