私は静的変数インスタンスとAppDomains、何が起こっていますか?
public static class A
{
public static string ConnString;
}
[Serializable]
public class Test{
// Accesing A's field;
public string ConnString{get{return A.ConnString;}set{A.ConnString=value;}}
}
void Main()
{
A.ConnString = "InitialString"; // I set A.ConnString in the current domain
var newDomain = AppDomain.CreateDomain("DomNew");
Test TObj = newDomain.CreateInstanceAndUnwrap(typeof(Test).Assembly.FullName, typeof(Test).FullName) as Test ;
TObj.ConnString = "NewDomainString"; // It is supposed to set A.ConnString in the newDomain aka a different instance of A.ConnString
// Here it is supposed to print two different values
Console.WriteLine(A.ConnString); // "InitialString"
Console.WriteLine(TObj.ConnString); // "NewDomainString"
}
を持っている。しかしNO! 2つのWriteLinesは、同じ値 "NewDomainString"を出力します! WHY ???
このコード
TObj.ConnString = "NewDomainString"
は、新しく作成されたドメイン内の文字列を変更することになったが、彼らの両方が同じインスタンスを参照するようです!
なぜ、ここで何が起こっていますか?
可能性のある複製http://stackoverflow.com/questions/4298913/static-fields-in-appdomain – daryal
タイトルに「C#」などのプレフィックスを付けないでください。それはタグのためのものです。 –
あなたは正しいジョンです!初心者ここ:)私は学んでいる!ありがとう! –