当前位置:编程学习 > C#/ASP.NET >>

求助工具:自动填充实体属性


namespace ClassLibrary4
{
    public class Users
    {
        public string UserName { get; set; }
        public int Age { get; set; }
    }

    class MyClass
    {
        Users u = new Users() { UserName="", Age=23 };
    }
}


 Users u = new Users() { UserName="", Age=23 };这里的UserName,,Age都是自己手动敲上去的,有时一个实体会有几十个字段,这样太麻烦,有没有什么快速的方法,直接让他全出来,最好是出来字段名后面跟上这个字段类型的默认值,或者
字段名 = item.字段名,这样的格式

此功能在转换实体时很有用,比如:
        foreach (var item in User2List)
{
        Users u = new Users() { UserName=item.姓名, Age=item.年龄 };
}


--------------------编程问答-------------------- 没啥好办法,除了你自己,谁也不知道一个实体和另一个实体的映射。

想快又不想错的话,都拷贝到Excel或者什么文本编辑器里,对应好,再拷贝回来。

当然自己写Mapping,通过反射赋值也行。 --------------------编程问答-------------------- 你说的我知道,但有时两个实体字段名基本上是一样的,这样一生成,再改就会方便很多。

其实主要还是想要调出实体属性的,因为自己手工都可以搞出来来,所以我想应该有这们的工具 --------------------编程问答-------------------- 反射还是少用
还是通过对象初始化器赋值
--------------------编程问答-------------------- 用发射的属性拷贝。
java的BeanUtils里都有 copyProperties(Object dest, Object orig) 
除非有大量的实体要相互拷贝,一般情况下反射也无妨。


/// <summary>
/// 提供两个对象的属性复制的方法。
/// 注意:不支持List属性复制。
/// </summary>
/// <param name="fromObj"></param>
/// <param name="toObj"></param>
public static void CopyProperty(object fromObj, object toObj)
{
    Type fromType = fromObj.GetType();
    Type toType = toObj.GetType();

    PropertyInfo[] fromPis = fromType.GetProperties();
    PropertyInfo[] toPis = toType.GetProperties();

    foreach (PropertyInfo pi in fromPis)
    {
        PropertyInfo toProperty = toType.GetProperty(pi.Name);
        if (toProperty != null)
        {
            toProperty.SetValue(toObj, pi.GetValue(fromObj, null), null);
        }
    }
}
--------------------编程问答-------------------- 除非有大量的实体要相互拷贝时要斟酌下性能,一般情况下反射也无妨。 --------------------编程问答-------------------- 两位还是没有理解我说的,我的意思是我想在敲代码时很方便的填充我的敲的东西,不管是什么工具,反射都不是问题,他只是帮我在设计时生成相关代码,提高我的输入速度,并不是运行时。

--------------------编程问答-------------------- 提高代码输入效率的工具也有,还可开发插件 --------------------编程问答-------------------- DB4O --------------------编程问答-------------------- 不明白 --------------------编程问答-------------------- 搜搜“动软” --------------------编程问答-------------------- 动软晓得,
我就是想,我手动敲的,编辑器自动给弄出来,其它的给个默认格式。不要让我去使用别的工具再整,因为,这个工夫,也许我手动都打完了。 --------------------编程问答-------------------- 我是还没发现这样的工具,你可以根据自己的要求开发个VS AddIn来。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,