gpt4 book ai didi

c# - 是否可以获取对象的属性和关联属性?

转载 作者:行者123 更新时间:2023-11-30 19:43:17 25 4
gpt4 key购买 nike

是否可以将属性及其关联属性作为集合或属性集获取?

我正在查看的对象的属性具有在 JSON.NET 中使用的属性,我想了解它们都是什么。之后,我将尝试找出其中哪些不为空。

这是一个示例对象:

[JsonObject]
public class Conditions
{
[JsonProperty("opened_since")]
public DateTime? OpenedSince { get; set; }
[JsonProperty("added_until")]
public DateTime? AddedUntil { get; set; }
[JsonProperty("opened_until")]
public DateTime? OpenedUntil { get; set; }
[JsonProperty("archived_until")]
public DateTime? ArchivedUntil { get; set;
}

最佳答案

这将为您提供所有属性、它们的属性以及属性参数的值(请注意,此解决方案假定您使用的是 .net Framework 4.5 版):

PropertyInfo[] props = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in props)
{
Console.WriteLine("Property: " + prop.Name);
foreach (CustomAttributeData att in prop.CustomAttributes)
{
Console.WriteLine("\tAttribute: " + att.AttributeType.Name);
foreach (CustomAttributeTypedArgument arg in att.ConstructorArguments)
{
Console.WriteLine("\t\t" + arg.ArgumentType.Name + ": " + arg.Value);
}
}
}

输出:

Property: OpenedSince
Attribute: JsonPropertyAttribute
String: opened_since
Property: AddedUntil
Attribute: JsonPropertyAttribute
String: added_until
Property: OpenedUntil
Attribute: JsonPropertyAttribute
String: opened_until
Property: ArchivedUntil
Attribute: JsonPropertyAttribute
String: archived_until

关于c# - 是否可以获取对象的属性和关联属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com