-2

と という名前の 2 つのクラスがParentありChildます。クラスには、クラスParentへの参照が含まれていますChildParentクラスのインスタンスを作成するときに、Childオブジェクトのインスタンスを渡します。

私の知る限り、このChildインスタンスを参照として渡します。次に、このParentオブジェクトを外部キャッシュにキャッシュします。次に、このオブジェクトを別のシステムから取得します。Childそのシステムでは、オブジェクトのインスタンスが存在しない可能性があると思います。

理論によると、「_child」には実際のオブジェクトではなく、ヒープ内のオブジェクトの参照が含まれていますか?

サーバー ファームのシナリオで考えてみてください。オブジェクト インスタンスは他のシステムで使用可能であり、システムはそのオブジェクトを生成した後です。

public class Parent
{
    public Child _child = null;

    public Parent(Child c)
    {
        _child=c;   
    }
}

public class Child
{
    public string Name;
}

static void Main()
{
    Child c = new Child();
    c.Name="vivek";
    Parent p = Parent(c);
    string key = ExternalCache.Add(p);
}

Parent別のシステムまたはアプリケーションでこのオブジェクトを取得しようとするとどうなりますか?

static void Main()
{
   Parent p = (Parent)ExternalCache.Get(Key)
   Console.WriteLine(p._child.Name);
}
4

1 に答える 1

0

オブジェクトの同じ参照を異なるマシンに渡すことはできません。同じメモリ空間内で実行されないという理由だけで、参照ができたとしても役に立たないからです。ただし、できることは、オブジェクト グラフをシリアル化し、反対側でオブジェクトを再構築することです。これは、オブジェクトのシリアル化、または単にシリアル化として知られています。

.NET Framework には、さまざまな種類のシリアル化を可能にするさまざまな組み込みシリアライザーがあります。

于 2013-01-09T10:35:08.790 に答える