我有一个类的构造函数,需要在根目录中查找设置文件。这对大多数项目类型都很好,我抓住这样的目录:
new FileInfo(typeOfThisClass.GetTypeInfo().Assembly.Location).DirectoryName
但是,如果我从Web项目中执行构造函数(如Web API),则无效。相反,我将获得一个临时目录的路径,而不是当前项目的根目录,如
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\73891a9e\147b8ade\assembly\dl3\7d1ac62b\0064ea47_c6bad201
过去,我使用它来获取Web项目的根目录:
HttpRuntime.AppDomainAppPath
但是,有问题的构造函数无权访问HttpRuntime,因为它在自己的封装程序集中,应该忽略与Web项目相关的任何内容。我不想传入字符串,因为我要求我的构造函数是无参数的。
那么如何以一致的方式获取根目录,以便在任何项目中工作,包括Web项目?