I remember programmatically creating hatches, then getting the boundaries, ultimately disposing the hatch and committing the polylines...that is before I found traceboundary. I believe you can drive bpoly (boundary) command programmatically as well. Lisp below...which could be used in conjunction with your .net routine
(command "_.BPoly" Pt "")