这个有点难以解释,所以我先展示代码..
注意:使示例不那么困惑
public class Class1{ public string Title {get;set;} public string Name {get;set;} public Class1(Class1 class1) { // ?? How do I populate current class with new class values? // ?? this = class1; - Does not work // I want to avoid having to manually set each value }}
感谢您的帮助..这是我所做的..在我的扩展类中创建的..所以我现在可以做
Extensions.MapValues(class1, this);
public static void MapValues(object from, object to) { var fromProperties = from.GetType().GetProperties(); var toProperties = to.GetType().GetProperties(); foreach (var property in toProperties) { var fromProp = fromProperties.SingleOrDefault(x => x.Name.ToLower() == property.Name.ToLower()); if(fromProp == null) { continue; } var fromValue = fromProp.GetValue(from, null); if(fromValue == null) { continue; } property.SetValue(to, fromValue, null); } }
你不能。
您可以手动复制属性,或将构造函数替换为返回 row.ToClass1()
的静态工厂方法。
我是一名优秀的程序员,十分优秀!