Hi Community.
Ich hab das Problem selbst gelöst. Man muss einfach nur eine Methode definieren, die die Setzung des Werts in der Liste übernimmt, und schon klappts.
Code:
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.Remoting;
namespace xyxyxyx {
class dasObjekt : MarshalByRefObject {
public Dictionary<string, object> config;
public dasObjekt() {
config = new Dictionary<string, object>();
}
public void setConf(string key, object val) {
config[key] = val;
}
public void huhu() {
AppDomain myDomain = AppDomain.CreateDomain("myDomain");
myType myObject = myDomain.CreateInstanceAndUnwrap(
Assembly.GetAssembly(typeof(myType)).FullName,
typeof(myType).FullName
) as myType;
myObject.dingsda(this);
}
public void dump() {
foreach (KeyValuePair<string, object> y in config)
Console.WriteLine("config[{0}] = {1}", y.Key, y.Value);
}
public static void Main() {
dasObjekt x = new dasObjekt();
x.huhu();
x.dump();
Console.ReadLine();
}
}
class myType : MarshalByRefObject {
public myType() {
}
public void dingsda(dasObjekt x) {
x.setConf("x", "y");
}
}
}
Wenn man sich vor Augen hält, welcher Code in welcher AppDomain ausgeführt wird, erscheint es im Nachhinein ziemlich simpel.