In using selfservicing, there are many methods which take a transaction parameter.
If they are not inside another transaction, you can pass null.
So, when I went to use a Unit of Work, I got to the Commit() function, which takes a transaction object. I passed it null. I of course got some wild and crazy null reference exception deep in the code.
I am suggesting:
1) The UOW object check the parameter for null and throw a meaningful exception.
or
2) The UOW object contain an overload of commit that takes NO parameters.
I am guessing due to other issues, you would selection option 1. Anyway, might save some questions/problems in the future. (Also, if you choose 1, you could put additional text in the parameter description that pops up in VS)
Just a thought!