确定项目根目录的最佳方法 - 即使在Web项目中也是如此

时间:2017-04-26 19:20:27

标签: c# asp.net separation-of-concerns system.io.directory

我有一个类的构造函数,需要在根目录中查找设置文件。这对大多数项目类型都很好,我抓住这样的目录:

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项目?

0 个答案:

没有答案