调试程序时我遇到了很奇怪的错误。我有一个数据合同,我添加了新属性,但其中一个导致以下异常:
Method not found: 'Void Measurement.set_ContactId(Int32)'.
数据合同如下:
[DataContract]
public class Measurement
{
[DataMember]
public int FactId { get; set; }
[DataMember]
public int ContactId { get; set; }
.....
我真的不明白什么是问题,因为正如我所说,我添加了一些其他属性,但它们没有问题。
UPD:当我尝试为ContactId
分配值时,服务端发生异常:
foreach (Measurement m in result.Where(m => m.FactId == factId)){
m.ContactId = contactId;
.....
答案 0 :(得分:8)
问题在于一些旧版本的DLL存储在.NET的缓存中。我在整个磁盘上搜索了DLL并删除了所有找到的文件(有些是.NET使用的,所以我不得不使用Unlocker)。重建项目后,它运作良好。
答案 1 :(得分:1)
如果此Measurement类是您的WCF服务的一部分,那么您可以在服务的两端(客户端和服务器端)使用它。双方是否都有相同的版本(ContactId有一个setter)?