As nobody has yet provided a solution to this problem, I can only conclde there is none and this is just another gaping hole in .NET.
My workaround, for those who stumble upon this later and want to write me to ask me how I got around this glaring oversight on MS's part, I abandoned using MS's plumbing and did it all by hand, just like in the good old days. That seems to be the only way to get anything in .NET to work. Maybe release 1.000001 will work as advertised. ;)