简体   繁体   中英

add attribute to property at runtime

I have a lot of class

example

  public class AccountItem
{
    public Guid p_ID { get; set; }
    public Guid LoginID { get; set; }
    public Guid DId { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public string OldPassword { get; set; }
    public DateTime PassChangeDate { get; set; }
}

    public class RankItem
{
    public Guid ModID { get; set; }
    public string Code { get; set; }
    public string RankName { get; set; }
    public int? Priority { get; set; }
}

and more...

how do I add record class add dynamically field or class?

example

I use this structure

 public class RecordData
{
    public Guid className { get; set; } 
    public DataFields dataFields { get; set; } 
}



   public class DataFields
{
    public List<AccountItem> Items { get; set; }

    public DataFields()
    {
        Items = new List<AccountItem>();
    }  
}   

or

 public class DataFields
{
    public List<RankItem> Items { get; set; }

    public DataFields()
    {
        Items = new List<RankItem>();
    }  
}  

how do I add record class add dynamically runtime field or class?

public class DataFields
{
    public List<????> Items { get; set; }

    public DataFields()
    {
        Items = new List<????>();  //I want to add dynamic list field
    }  
}  


public class RankItem
{
    public Guid ModID { get; set; }
    public string Code { get; set; }
    public string RankName { get; set; }
    public int? Priority { get; set; }

    publist string or type  ????  {get;set;}  // I want to add dynamic field
}

thank you

Something in line with (might have some syntax error, but this is the idea)

public class DataFields<T>
{
    public List<T> Items { get; set; }

    public DataFields()
    {
        Items = new List<T>(); 
    }  
}  

and use it like:

public class RankItem
{
    public Guid ModID { get; set; }
    public string Code { get; set; }
    public string RankName { get; set; }
    public int? Priority { get; set; }

    public DataFields<string> StringDataFields {get;set;}  // I want to add dynamic field
    public  DataFields<AccountItem> AccountItemDataFields {get;set;}  // I want to add dynamic field
    //public DataFields<int> AnotherSampleDataList {get;set;}  // I want to add dynamic field
}
    public class RecordData
{
    public Guid className { get; set; }
    public DataFields<AccountItem> dataFields { get; set; }  //or  public DataFields<RankItem> dataFields { get; set; }
}



public class DataFields<T>
{
    public List<T> Items { get; set; }

    public DataFields()
    {
        Items = new List<T>();
    }
}   

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM