WCF和ref参数

时间:2013-02-18 20:37:35

标签: c# wcf

我遇到了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属性中包含相同的字符串!?通过ref函数参数在WCF中有什么问题吗?

1 个答案:

答案 0 :(得分:5)

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

下图显示了此方案的进展情况。

enter image description here