Is "assign_vi" the only way to pass interface to the components from environment?

In reply to Lai:

Hi,
In the step 2 what is the difference if we pass an actual interface to virtual interface wrapper in the constructor as my comments below and direct assignment “v_intf.m = itf;” as shown:

typedef virtual intf v_intf_t;

vm_wrapper #(v_intf_t) vintf = new();
//My comments:pass actual interface to virtual interface wrapper in the new() constructor
vm_wrapper #(v_intf_t) vintf = new(“vintf”,itf);

intf itf();

initial
begin
//My comments:Below assignment not required
v_intf.m = itf; //PAss an actual handle interface
set_config_object(“*”,“wrapper”,wrapper,0);
end

endmodule

Thanks,