I need to copy properties of one object to another, both objects can be of different type, can have properties of same name. These property can also be of complex type.
Use AutoMapper and ignore the members you don't want to map.
config.CreateMap() .ForMember(d => d.Name, o => o.MapFrom(s => s.FullName)) .ForMember(d => d.Age, o => o.Ignore());