我看了一些关于这个主题的类似帖子,但没有找到我想要的内容,所以我会解释一下我正在做什么以及遇到的问题。
我有一个MVC3应用程序和一个保存我的模型数据的类库。例如,我的领域模型项目在这里有一个名为CLUser的类:
public class CLUser
{
public int ID { get; set; }
[Display(Name = "User Name")]
[StringLength(50, ErrorMessage = Util.ERRORMESSAGE_STRING_LENGTH_50)]
public string UserName { get; set; }
public string Password { get; set; }
public DateTime PasswordExpiration { get; set; }
public bool LockedOut { get; set; }
public string LockedOutReason { get; set; }
[Display(Name = "Security Question")]
public string SecurityQuestion { get; set; }
[Display(Name = "Security Answer")]
public string SecurityAnswer { get; set; }
[Display(Name = "Current Status:")]
public int Standing { get; set; }
public int MerchantID { get; set; }
public int PartnerID { get; set; }
public DateTime CreatedDtTm { get; set; }
public DateTime UpdatedDtTm { get; set; }
public List<CLPermission> UserPerms { get; set; }
}
接下来我有一个WCF服务,它引用了与模型CLUser相同的项目。因此在我的WCF中,我有一个名为的操作协定
[OperationContract]
GetUser(string userName, string password);
因此,在MVC项目中,它会被公开。
所以问题来了。我想将CLUser对象设置为调用GetUser的WCF服务的返回值。代码如下:
ServiceClient MyService = new ServiceClient();
CLUser Usr = MyService.GetUser(userName, password);
然而,当我这样做时,会出现以下错误:
无法隐式转换类型 Auth.CLUser 到 Auth.CLUser[C:\ ....\Auth.DLL]
如果WCF和MVC应用程序都引用相同的DLL,它们不应该能够使用相同的对象吗?