gpt4 book ai didi

c# - 获取嵌套对象的属性

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:35 25 4
gpt4 key购买 nike

我正在尝试获取对象的所有属性及其值。我这里的代码为我的对象的“简单”属性提供了所有值:

                    foreach (var prop in dataItem.Value.GetType().GetProperties())
{
if (prop.Name == "CurrentSample")
{
//Doesn't work
var internProperties = prop.GetType().GetProperties();
foreach (var internProperty in internProperties)
{
System.Diagnostics.Debug.WriteLine("internProperty.Name + " : " + internProperty.GetValue(prop, null));
}
}
else
{
System.Diagnostics.Debug.WriteLine(prop.Name + " : "+ prop.GetValue(dataItem.Value, null));
}
}

我的问题出在我的“CurrentSample”属性上,它包含 2 个自己的属性(时间戳和字符串)。我找不到检索这些信息的方法。

我已尝试应用相同的原则,但我根本没有获得正确的信息。我可以使用简单的 dataItem.Value.CurrentSample.Value 或 dataItem.Value.CurrentSample.TimeStamp 访问这些值,但想知道一种更合适的方法来使其工作。

现在我没有打印我的 TimeStamp 和 Value 及其值,而是得到了一个大的属性列表,我想是类属性的所有属性:

ReflectedType : MTConnectSharp.DataItem
MetadataToken : 385876007
Module : MTCSharp.dll
PropertyType : MTConnectSharp.DataItemSample
Attributes : None
CanRead : True
CanWrite : False
GetMethod : MTConnectSharp.DataItemSample get_CurrentSample()
SetMethod :
IsSpecialName : False
CustomAttributes : System.Collections.ObjectModel.ReadOnlyCollection`1[System.Reflection.CustomAttributeData]

最佳答案

我猜你对这一行有疑问:

var internProperties = prop.GetType().GetProperties();

它应该返回 PropertyInfo 属性,因为您没有先获取属性值。

与:

var internProperties = prop.GetValue(dataItem.Value, null).GetType().GetProperties();

它应该工作得更好。

为此:

System.Diagnostics.Debug.WriteLine("internProperty.Name + " : " + internProperty.GetValue(prop, null));

您仍然需要属性值,而不是属性本身。

关于c# - 获取嵌套对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349649/

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