我想从Application.exe.config共享我的AppSettings,以便由新创建的AppDomains共享/使用。我正在创建AppDomains,如下所示
public static AppDomain Create(Guid sessionId)
{
AppDomain currentDomain = AppDomain.CurrentDomain;
AppDomainSetup setup = new AppDomainSetup();
// use the ID as part of the unique name for the process
string name = "Session_" + sessionId;
setup.ApplicationName = name;
setup.ApplicationBase = currentDomain.SetupInformation.ApplicationBase;
setup.PrivateBinPath = currentDomain.SetupInformation.PrivateBinPath;
setup.ConfigurationFile = currentDomain.SetupInformation.ConfigurationFile;
Evidence baseEvidence = currentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
return AppDomain.CreateDomain(name, evidence, setup);
}
我是否需要执行任何其他步骤才能使ConfigurationManager.AppSettings [key]返回与原始AppDomain相同的值?
答案 0 :(得分:0)
不,你不需要做任何特别的事。
使用以下代码来实现服务器对象:
var instance = (ServerClass)domain.CreateInstance("ClassLibrary1", "ServerClass").Unwrap();
var result = instance.ReadConfig();
来自以下类中的单独汇编:
[Serializable]
public class ServerClass : MarshalByRefObject
{
public ServerClass() { }
public string ReadConfig()
{
var foo = ConfigurationManager.AppSettings["foo"];
Console.WriteLine(String.IsNullOrEmpty(foo) ? "null" : foo);
return foo;
}
}
从可执行文件(即主appdomain)返回app.config中appsetting的值。