我有一些基础设施代码可以在常规AppDomain
下运行,在其他情况下也可以在ASP.Net AppDomain
下运行。
对于这两种情况,代码的行为应该是不同的。
如何在不依赖AppDomain
命名空间程序集的情况下识别我在哪种类型System.Web
运行,因为这是基础架构代码?
例如:
public static string BasePath
{
get
{
var isAspNetAppDomain = ...
return isAspNetAppDomain
? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin")
: AppDomain.CurrentDomain.BaseDirectory;
}
}
答案 0 :(得分:1)
一般来说,这种事情是一种糟糕的设计。如果两种情况下的行为不同,那么它实际上是两个单独的方法,或者是一个带有bool参数的方法:
public static string GetBasePath(bool isAspNetAppDomain)
{
return isAspNetAppDomain
? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin")
: AppDomain.CurrentDomain.BaseDirectory;
}