1

我在使用 WCF 并将参数作为 ref 传递时遇到了奇怪的问题。

假设我有一个类:

Class MyClass 
{
     public string str;
}

和这样的代码块:

List<MyClass> c = new List<MyClass>();
c.Add(new MyClass());
MyClass c2 = c[0];

如果我然后调用应该更新该类的 str 属性的 WCF 方法:

WCFService.UpdateStr(ref c2);

c[0] 和 c2 是不同的——它们不应该在 str-property 中包含相同的字符串吗!?ref 函数参数在 WCF 中是否有问题?

4

1 回答 1

5

不,他们不应该。通过引用传递的参数意味着可以更改对象本身,并且在 WCF 调用的情况下,它是。当调用UpdateStr返回时,c2 引用了一个不同的对象实例。

下图显示了此场景的情况。

在此处输入图像描述

于 2013-02-18T20:52:00.360 回答