Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在.NET中的各个AppDomain之间共享appsettings_.net_Appsettings - Fatal编程技术网

如何在.NET中的各个AppDomain之间共享appsettings

如何在.NET中的各个AppDomain之间共享appsettings,.net,appsettings,.net,Appsettings,我想从Application.exe.config中共享我的AppSettings,以供新创建的AppDomains共享/使用。我正在创建AppDomains,如下所示 public static AppDomain Create(Guid sessionId) { AppDomain currentDomain = AppDomain.CurrentDomain; AppDomainSetup setup = new AppDomainSetup();

我想从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相同的值,是否需要执行其他步骤?

不,您不需要执行任何特殊操作

使用以下代码表示服务器对象:

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的值