2009-07-27 8 views
1

新しく作成されたAppDomainsによって共有される/使用されるApplication.exe.configからAppSettingsを共有したいと思います。どのようにAppsettingsを.NETのさまざまな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); 
    } 

以下のように私はのAppDomainを作成しています、私はConfigurationManager.AppSettingsを持っている任意の追加の手順を持っている必要がありますか[キー]元のAppDomainと同じ値を返しますか?

答えて

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; 
    } 
} 

からApp.configファイル内のAppSettingの値を返すサーバーオブジェクトをisntantiateするために、次のコードを使用し

実行可能ファイル(つまり、メインのappdomain)。

関連する問題