我有一個類,它有一個名為 properties 的屬性,但該屬性可以有不同的值。這些是來自某處的動態值,我需要創建一個具有 Json 結構的請求,該結構具有 Customer,屬性可以具有不同的值。我嘗試了以下方法:
客戶類別
public class Customer{
public string name {get;set;}
public dynamic properties {get;set;}
}
這些屬性可以是動態的。例如 - 這可以是我得到的 json
第一個例子:
"properties":{
"name": "Mark",
"address": {
"city":"paris"
}
}
第二個例子:
"properties":{
"name": "Chris",
"description":"human",
"birth":"1990",
"address": {
"name":"paris"
}
}
每當我執行 properties.address.name 時,它??都會說它可以參考空參考。我不確定動態型別是否正確。這應該如何在 C# 中完成。如果財產可以有不同的價值,你采取什么方法?
uj5u.com熱心網友回復:
動態型別很復雜,但簡而言之,它們在運行時而不是編譯時進行評估(請參閱:https : //www.geeksforgeeks.org/dynamic-type-in??-c-sharp/)。這似乎不是您正在處理的問題,您可以簡化解決方案。
看起來您的問題有很多答案(簡短的 google 提出:在現有類 c# 中在運行時動態添加屬性等等),您可以嘗試并實作它們。
但是 - 也許使用 json 支持包會更容易,比如newtonsoft.json將 json 物件作為Properties.
然后你就可以添加和使用 json 元素(屬性):
using Newtonsoft.Json;
public class Customer
{
public string Name {get;set;}
public JObject Properties {get;set;} = new JObject();
}
添加:
customer.Properties["evilProp"] = 666;
并得到它:
var numberFromHell = customer.Properties["evilProp"];
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/340076.html
