簡體   English   中英

使用反射獲取列表屬性類型

[英]Getting list properties types using reflection

我想使用反射獲取列表模型屬性類型。 我有一個模型列表,每個列表屬性的類型對我來說都是必需的

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM