gpt4 book ai didi

c# - 通过反射获取字段

转载 作者:太空狗 更新时间:2023-10-29 19:52:05 25 4
gpt4 key购买 nike

<分区>

我想获取所有具有空值的字段,但我什至没有获取任何字段:

  [Serializable()]
public class BaseClass
{
[OnDeserialized()]
internal void OnDeserializedMethod(StreamingContext context)
{
FixNullString(this);
}

public void FixNullString(object type)
{
try
{
var properties = type.GetType().GetFields();


foreach (var property in from property in properties
let oldValue = property.GetValue(type)
where oldValue == null
select property)
{
property.SetValue(type, GetDefaultValue(property));
}
}
catch (Exception)
{

}
}

public object GetDefaultValue(System.Reflection.FieldInfo value)
{
try
{
if (value.FieldType == typeof(string))
return "";

if (value.FieldType == typeof(bool))
return false;

if (value.FieldType == typeof(int))
return 0;

if (value.FieldType == typeof(decimal))
return 0;

if (value.FieldType == typeof(DateTime))
return new DateTime();
}
catch (Exception)
{

}

return null;
}
}

然后我有一个类:

    [Serializable()]
public class Settings : BaseClass
{
public bool Value1 { get; set; }
public bool Value2 { get; set; }
}

但是当我来的时候

 var properties = type.GetType().GetFields();

然后我得到 0 个字段,它应该找到 2 个字段。

type.getType().GetFields() 是不是用错了?还是我向基类发送了错误的类?

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