CommonTools/PropertyUtil.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Reflection;
using System.Drawing;
namespace CommonTools
{
public class PropertyUtil
{
private static PropertyInfo GetNestedProperty(object dataobject, string[] nestedfields, int curindex, ref object nestedDataObject)
{
nestedDataObject = dataobject;
string fieldname = nestedfields[curindex];
PropertyInfo property = GetProperty(dataobject, fieldname);
if (property == null)
return null;
dataobject = property.GetValue(dataobject, null);
curindex++;
if (curindex == nestedfields.Length)
return property;
return GetNestedProperty(dataobject, nestedfields, curindex, ref nestedDataObject);
}
public static PropertyInfo GetNestedProperty(object dataobject, ref object nestedDataObject, string fullFieldname)
{
string[] names = fullFieldname.Split('.');
return GetNestedProperty(dataobject, names, 0, ref nestedDataObject);
}
public static PropertyInfo GetNestedProperty(ref object dataobject, string fullFieldname)
{
return GetNestedProperty(dataobject, ref dataobject, fullFieldname);
}
public static PropertyInfo GetProperty(object dataobject, string propertyname)
{
if (dataobject == null)
return null;
return GetProperty(dataobject.GetType(), propertyname);
}
public static PropertyInfo GetProperty(Type dataobjecttype, string propertyname)
{
MemberInfo[] members = dataobjecttype.GetMember(propertyname);
foreach (MemberInfo member in members)
{
PropertyInfo property = (member as PropertyInfo);
if (property != null)
return property;
}
return null;
}
private static bool IsPrimitive(object obj)
{
if (obj == null)
return false;
Type type = obj.GetType();
if (type.IsPrimitive || type.IsEnum || type == typeof(string))
return true;
return false;
后面还有 115 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。