我有一个WCF SOAP服务,最近更改了该方法的响应。我有其他应用程序使用此方法。我没有更改方法名称,它接受的参数。我做的唯一更改是我向响应对象添加了2个新属性。解释如下,Udpate WCF Web服务参考
方法:
Public Class2 GetData(SampleClass1 data, bool extraStuffRequired)
{
var obj = new Class2();
//Process data here and load into obj
return obj;
}
Class2中的定义修改前:等级2的变化后
Public class Class2
{
public string p1 {get; set;}
public string p2 {get; set;}
}
定义:
Public class Class2
{
public string p1 {get; set;}
public string p2 {get; set;}
public string p3 {get; set;}
public string p4 {get; set;}
}
请注意,我已经加入2新的属性p3和p4,并基于busniess逻辑,我会填充它们中的值或将它们设置为空特林。所以他们更新服务参考,并得到生成的类和使用新特性(P3和P4)
ConsumingApp1希望这些新的特性。
ConsumingApp2不希望他们,但他们做的调用方法,但只使用P1 P2 &。
我的问题是,我是否需要强制ConsumingApp2更新其服务引用或将它实际上没有ConsumingApp2做任何修改工作得很好?
谢谢@Agalo。你能让我知道究竟需要什么,非必需的手段?它们是新的属性,所以ConsumingApp2在代码中不使用,不想使用,因此如果它们在代码中使用它的必需和非必需的话。我对吗 ?整个类是用[Serializable] –
装饰的。IsRequired是一个可以为DataMember装饰的属性,因此非必需意味着您的DataMember没有用IsRequired属性装饰。在场景中,IsRequired被添加到DataMember中,如果DataMember不存在,则会抛出SerializationException。从你发布的代码中,我确实相信你没有使用IsRequired属性。 – Agalo