0

我有两个域类

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Address Address { get; set; }

}
public class Address
{
    public string HouseName { get; set; }
    public string StreetName { get; set; }
    public string PinCode { get; set; }
}

我想将 Employee 类的对象映射到另一个类。我正在使用反射将 empData 对象映射到另一个对象。我使用的代码是

private void GetValues(object empData)
{
    System.Type type = empData.GetType();

    foreach (PropertyInfo pInfo in type.GetProperties())
    {
        //do some stuff using this pInfo. 
    }
}

我可以轻松地映射除 emp 对象中的 Address 属性之外的所有属性,该 emp 对象是另一个类的对象。那么,无论其类型如何,我如何映射所有属性?即,如果地址包含另一个类的对象,它也应该被映射。

4

3 回答 3

1

你不能使用AutoMapper来映射类吗?

于 2012-07-26T07:19:45.107 回答
0

您可以知道要映射的属性类型

if (propertyInfo.PropertyType == typeof(Address))
    { // do now get all properties of this object and map them}
于 2012-07-26T07:20:27.520 回答
0

假设您希望能够在任何类型的对象上执行此操作,而不仅仅是这个特定的对象,您应该使用某种递归解决方案。但是,如果它只是为了这个对象 - 你为什么还要使用反射?对我来说,它只是给一些简单的事情增加了不必要的复杂性,比如将六个属性映射到另一组对象。

如果您想在代码示例方面获得更具体的帮助,您必须给我们更多的上下文。为什么名为“GetValues”的方法的返回类型为 void?考虑到这一点,我很难编写一个示例。:)

于 2012-07-26T07:21:52.280 回答