KeepReferenceAttribute
This attribute indicates the parameter will be referenced by the return
object, hence its DS wrap object shouldn't be disposed even it is out
of scope. The life-cycle of parameter will have the same life-cycle as
the return object.
Note the type of return object should be reference type, either a
pointer or an array.
public KeepReferenceAttribute()