using System.Web.Hosting;
namespace _04_应用程序域
{
public class Intelligencer : System.MarshalByRefObject
{
public string Report()
{
System.AppDomain appdomain = System.AppDomain.CurrentDomain;
StringBuilder builder = new StringBuilder();
// 应用程序域的信息
builder.AppendFormat("Domain ID: {0}\r\n", appdomain.Id);
// 对于每一个 Web 应用程序域,有一个 HostingEnvironment
builder.AppendFormat("VirtualPath: {0}\r\n",
HostingEnvironment.ApplicationVirtualPath);
builder.AppendFormat("PhysicalPath: {0}\r\n",
HostingEnvironment.ApplicationPhysicalPath);
return builder.ToString();
}
}
}
//调用该类
using System;
namespace _04_应用程序域
{
class Program
{
static void Main(string[] args)
{
System.Type hostType = typeof(Intelligencer);
Intelligencer intelligencer
= System.Web.Hosting.ApplicationHost.CreateApplicationHost(
hostType,
"/",
System.Environment.CurrentDirectory
)
as Intelligencer;
Console.WriteLine("Current Domain ID: {0}\r\n", AppDomain.CurrentDomain.Id);
Console.WriteLine(intelligencer.Report());
Console.Read();
}
}
}
特别注意:
这个方法需要创建一个新的应用程序域,这个应用程序域将重新加载hostType,方法将按照以下顺序来寻找定义hostTYpe类型的程序集:
1)GAC
2)网站物理文件目录下的bin文件夹