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 return object should be reference type.
public KeepReferenceAttribute()