WCF和ref参数

Jas*_*ska 1 c# wcf

我遇到了WCF的奇怪问题,并将参数作为ref传递.

假设我有一个班级:

Class MyClass 
{
     public string str;
}
Run Code Online (Sandbox Code Playgroud)

和这样的代码块:

List<MyClass> c = new List<MyClass>();
c.Add(new MyClass());
MyClass c2 = c[0];
Run Code Online (Sandbox Code Playgroud)

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

WCFService.UpdateStr(ref c2);
Run Code Online (Sandbox Code Playgroud)

c [0]和c2是不同的 - 它们不应该在str属性中包含相同的字符串!?通过ref函数参数在WCF中有什么问题吗?

car*_*ira 5

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

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

在此输入图像描述