namespace NSExt.Extensions; /// /// GenericExtensions /// public static class GenericExtensions { /// /// 从指定的对象拷贝属性 /// /// 对象类型 /// me /// 拷贝来源 /// 需要处理的属性名 /// True包含,false排除 public static void CopyFrom(this T me, T copyObj, IList propNameList = null , bool isIncludeOrExclude = false) { foreach (var p in me.GetType().GetProperties()) { if (!p.CanWrite) { continue; } var isSet = isIncludeOrExclude ? propNameList?.Contains(p.Name) ?? false : !propNameList?.Contains(p.Name) ?? true; if (isSet) { p.SetValue(me, copyObj.GetType().GetProperty(p.Name)?.GetValue(copyObj, null), null); } } } /// /// 判断是否与某对象相等 /// public static T Is(this T me, T compare, T ret) where T : struct { return me.Equals(compare) ? ret : me; } }