WCF服务不更新(多项目,相同的解决方案)
我有一点麻烦,从项目中我的WCF服务的参考,以反映项目B.变化WCF服务不更新(多项目,相同的解决方案)
都在我服务的参考和标准参考服务参考项目的DLL。
当对服务库进行更改时,这些更改似乎不会传播到我的客户端应用程序。这里有一个例子:
这是一个一流的,我只是一个新的“测试”构造更新,驻留在服务库的例子:
[DataContract]
public class TransactionUploadResult {
[DataMember]
public string Transaction_ID;
[DataMember]
public bool Error;
public TransactionUploadResult(string id, string temp, bool error) {
Transaction_ID = id;
Error = error;
}
public override string ToString() {
return "TID:" + Transaction_ID + ", " + (Error ? "ERROR" : "SUCCESS");
}
}
通知多余的第二个参数“临时”在构造函数中。
现在,这里是从我的客户端代码片段(在不同的项目,相同的解决方案):
private void button1_Click(object sender, EventArgs e) {
TransactionUploadResult tur = new TransactionUploadResult("test", true);
MessageBox.Show(tur.ToString());
MessageBox.Show(RemoteHandler.ServiceClient.UploadTransaction(new Transaction()).ToString());
}
UploadTransaction()返回一个TransactionUploadResult。 MessageBoxes都显示用户定义对象的标准ToString()结果,而不是我在TransactionUploadResult中定义的结果。
客户端甚至编译并运行(考虑到它使用过时的构造函数)的事实令我感到惊讶。
怎么回事?提前致谢。
我想你必须在客户端应用程序中右键单击服务引用并选择“更新服务引用”。
啊,道歉,我应该提到,但我一直在这样做。 – Xenoprimate 2012-03-20 08:13:52
我能想到的唯一其他解决方案是确保dll被构建(clean/build)并确保datacontract与实现它的类相匹配,通常datacontract只是与方法签名的接口,然后您有一个类实现该接口并在方法内部具有肉。 – John 2012-03-20 08:18:24
只是要确定:您是否检查了ServiceReference配置设置“在所有引用的程序集中重用类型”? – 2012-03-20 10:04:57
这是检查,是的,这是做什么? – Xenoprimate 2012-03-20 15:10:19