C# WCF服务未更新(多项目、同一解决方案)

C# WCF服务未更新(多项目、同一解决方案),c#,wcf,C#,Wcf,我在从项目a获取WCF服务参考以反映项目B中的更改时遇到了一些问题 我有服务参考和服务参考项目的DLL的标准参考 在对服务库进行更改时,这些更改似乎不会传播给我的客户端应用程序。以下是一个例子: 这是我刚刚用新的“test”构造函数更新的一个类的示例,该构造函数位于服务库中: [DataContract] public class TransactionUploadResult { [DataMember] public string Transactio

我在从项目a获取WCF服务参考以反映项目B中的更改时遇到了一些问题

我有服务参考和服务参考项目的DLL的标准参考

在对服务库进行更改时,这些更改似乎不会传播给我的客户端应用程序。以下是一个例子:

这是我刚刚用新的“test”构造函数更新的一个类的示例,该构造函数位于服务库中:

[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");
        }
    }
请注意构造函数中多余的第二个参数“temp”

下面是我的客户机代码片段(在不同的项目中,使用相同的解决方案):

UploadTransaction()返回TransactionUploadResult。MessageBox都显示用户定义对象的标准ToString()结果,而不是我在TransactionUploadResult中定义的结果

客户机甚至编译和运行(考虑到它使用的是过时的构造函数)这一事实让我感到惊讶


怎么了?提前感谢。

我认为您必须右键单击客户端应用程序中的服务引用并选择“更新服务引用”。

啊,抱歉,我本应该提到这一点,但我一直在这么做。我能想到的唯一其他解决方案是确保dll已构建(清理/构建)并确保datacontract与实现它的类匹配,通常datacontract只是一个具有方法签名的接口,然后您就有了一个实现该接口的类,并且该类的肉在方法中。只是为了确保:您是否检查了ServiceReference配置设置“在所有引用的程序集中重用类型”?它被检查了,是的,那是做什么的?
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());
        }