The Server.MapPath function a very useful, but it requires an HTTP Context or a Null exception error is thrown.

In situations where you don't have an HTTP context like a property in a class file, a slightly different approach is required.  I had to do some digging but I found this and it worked perfectly for me.  Let's say you have a String property on a class and you want a separate READONLY property to represent the full Server.MapPath equivalent.  Instead of using Server.MapPath("~/"+Me.OutFile), just use this:

System.Web.Hosting.HostingEnvironment.MapPath("~\" + Me.OutFile)