簡體   English   中英

如何將所有 class 屬性以及值添加到 C# 中的 Hashable?

[英]How to add all class properties along with the values to Hashable in C#?

我有以下 2 個 model 類:

public class InitiateRequest
{
    /// <summary>
    /// 
    /// </summary>
    public string FormCode { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public InitiateFormField Fields { get; set; }
}
public class InitiateFormField
{
    [Required]
    [JsonPropertyName("STD_INCIDENTTYPEID")]
    public string IncidentTypeId { get; set; }

    [Required]
    public string STD_SUBJECTTYPEID { get; set; }

    [Required]
    public string STD_SUBJECTID { get; set; }

    public string STD_PARENTSUBJECTID { get; set; }

    public int PREPARER_ID { get; set; }

    public string EXISTING_FORMER_CLIENT { get; set; }
    public string MATTER_TITLE { get; set; }
    public string MATTER_DESCRIPTION { get; set; }
    public int SUBMITTING_ATTORNEY { get; set; }
    public int NEW_MATTER_RESPONSIBLE_ATTORNEY { get; set; }
    public string MATTER_TYPE { get; set; }
    public string MATTER_PRACTICE_CODE { get; set; }
    public string NEW_CLIENT_CODE { get; set; }
}

我想將InitiateFormField class 中的所有屬性添加到哈希表中。 var properties = new Hashtable();

Hashtable Key 是 model 屬性的名稱, value 是屬性的實際值。

例如

properties.Add("STD_INCIDENTTYPEID", "myString");

有沒有辦法做到這一點?

我不明白為什么應該使用HashTable而不是 Dictionary,但我離題了。

給定您的代碼,我假設您可以訪問 Json.NET。

您可以將任何 Json object 轉換為Dictionary<string, object> ,因此您可以:

var serializedFields = JsonConvert.SerializeObject(request.Fields);
var fieldsDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>();

// if you _really_ need a hashTable:
var hashTable = new HashTable(fieldsDictionary); 

可能有更有效的方法,但考慮到 Json.NET 的優化以及保證您只使用可序列化類型的事實,我認為這是最簡單的解決方案。

暫無
暫無

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

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