如何解决如何使用动态对象类创建.net核心MVC模型?
我正在寻找一个代码示例,以说明如何使用C#在.net核心MVC中创建Model类,其中该类具有动态属性。我的API收到一个http POST请求,并且正在为我的API的HeadersModel类中的每个HTTP标头创建一个属性。
我正在使用.net core 3.1
namespace HttpsHeaders.Models
{
public class Headers : DynamicObject
{
//public int ID { get; set; }
//public string HeaderOne { get; set; }
//Instead of these properties,I want to add the properties dynamically
Dictionary<string,object> dictionary
= new Dictionary<string,object>();
}
}
如果该动态对象有更好的解决方案,请在学习.net核心C#时让我知道。
编辑: 如何将动态对象序列化为JSON字符串?
我可以在此处找到有关如何创建动态对象的说明: https://docs.microsoft.com/en-us/dotnet/api/system.dynamic.dynamicobject?view=netcore-3.1
但是,我无法将Headers对象序列化为字符串json。 这些说明不起作用,序列化后我得到一个空字符串。
C# json object for dynamic properties How to serialize a dynamic object to a JSON string in dotnet core?
dynamic dynObjectInstance = new Headers ();
dynObjectInstance.Foo = "Bar";
string resultJson = JsonConvert.SerializeObject(dynObjectInstance);
\\ this returns "{}"
\\ I was expecting to get “{\”Foo\”:\”Bar\”}”
解决方法
我找到了比定义模型更好的解决方案,它使用的是ExpandObject。
// ExpandoObject supports IDictionary so we can extend it like this
dynamic expando = new ExpandoObject();
var expandoDict = expando as IDictionary<string,object>;
if (expandoDict.ContainsKey(propertyName))
expandoDict[propertyName] = propertyValue;
else
expandoDict.Add(propertyName,propertyValue);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。