使用反射获取列表属性类型
Getting list properties types using reflection
t我想使用反射获取列表模型属性类型。我有一个模型列表,每个列表 属性 的类型对我来说都是必需的
public class Params
{
public class AnalitikButceKodlariListesiOutput
{
public string KOD { get; set; }
public string KOD_01 { get; set; }
public string KOD_02 { get; set; }
public string KOD_03 { get; set; }
public string KOD_04 { get; set; }
public string BUTCE_ADI { get; set; }
public double YIL { get; set; }
}
public class AnalitikButceKodlariListesiYilOutput : AnalitikButceKodlariListesiOutput
{
}
}
List<WebParameters.Params.AnalitikButceKodlariListesiYilOutput> list = new List<WebParameters.Params.AnalitikButceKodlariListesiYilOutput>();
WebParameters.Params.AnalitikButceKodlariListesiYilOutput item = new WebParameters.Params.AnalitikButceKodlariListesiYilOutput()
{
KOD = "a",
KOD_01 = "",
KOD_02 = "d",
KOD_03 = "c",
KOD_04 = "d",
BUTCE_ADI = "e",
YIL = 2015
};
我试过了,但没有成功。
foreach (var pObject in list)
{
foreach (var item2 in pObject.GetType().GetProperties())
{
var type = pObject.GetType().GetProperty(item2.Name).GetType().Name;
}
}
最好调用 GetProperty
提供一些绑定标志:
pObject.GetType().GetProperty(item2.Name, BindingFlags.Public | BindingFlags.Instance).GetType().Name;
顺便说一句,我怀疑您正在寻找 属性 类型,而 pObject.GetType()
会给您 PropertyInfo
类型而不是声明的 属性 类型。使用 PropertyInfo.PropertyType
代替:
string propertyTypeName = pObject.GetType()
.GetProperty(item2.Name, BindingFlags.Public | BindingFlags.Instance)
.PropertyType
.Name;
t我想使用反射获取列表模型属性类型。我有一个模型列表,每个列表 属性 的类型对我来说都是必需的
public class Params
{
public class AnalitikButceKodlariListesiOutput
{
public string KOD { get; set; }
public string KOD_01 { get; set; }
public string KOD_02 { get; set; }
public string KOD_03 { get; set; }
public string KOD_04 { get; set; }
public string BUTCE_ADI { get; set; }
public double YIL { get; set; }
}
public class AnalitikButceKodlariListesiYilOutput : AnalitikButceKodlariListesiOutput
{
}
}
List<WebParameters.Params.AnalitikButceKodlariListesiYilOutput> list = new List<WebParameters.Params.AnalitikButceKodlariListesiYilOutput>();
WebParameters.Params.AnalitikButceKodlariListesiYilOutput item = new WebParameters.Params.AnalitikButceKodlariListesiYilOutput()
{
KOD = "a",
KOD_01 = "",
KOD_02 = "d",
KOD_03 = "c",
KOD_04 = "d",
BUTCE_ADI = "e",
YIL = 2015
};
我试过了,但没有成功。
foreach (var pObject in list)
{
foreach (var item2 in pObject.GetType().GetProperties())
{
var type = pObject.GetType().GetProperty(item2.Name).GetType().Name;
}
}
最好调用 GetProperty
提供一些绑定标志:
pObject.GetType().GetProperty(item2.Name, BindingFlags.Public | BindingFlags.Instance).GetType().Name;
顺便说一句,我怀疑您正在寻找 属性 类型,而 pObject.GetType()
会给您 PropertyInfo
类型而不是声明的 属性 类型。使用 PropertyInfo.PropertyType
代替:
string propertyTypeName = pObject.GetType()
.GetProperty(item2.Name, BindingFlags.Public | BindingFlags.Instance)
.PropertyType
.Name;