# File lib/soap/mapping/factory.rb, line 310
  def obj2soap(soap_class, obj, info, map)
    type = info[:type] || info[0]
    soap_obj = soap_class.new(type)
    mark_marshalled_obj(obj, soap_obj)
    if obj.class <= SOAP::Marshallable
      setiv2soap(soap_obj, obj, map)
    else
      # allow to serialize an instance of unmarked class
      setiv2soap(soap_obj, obj, map)
    end
    soap_obj
  end