-2

我有两个名为Parent和的类ChildParent该类包含对该类的引用Child。当我创建一个Parent类的实例时,我将传递一个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 回答