【发布时间】:2015-12-26 17:29:48
【问题描述】:
我对 WCF Web 服务还很陌生,直到现在我使用的是 .asmx Web 服务,我从来没有遇到过类似的问题。
我有一个附件类,我用它来保存网站上的一些附件。
[DataContract]
public class Attachement
{
private string _Name;
[Column]
[DataMember(Order = 1)]
public string Name
{
get { return _Name; }
set { _Name = value; }
}
.
.
.
private bool _IsNew;
[DataMember(Order = 6)]
public bool IsNew
{
get { return _IsNew; }
set { _IsNew = value; }
}...
问题是,当我向 WCF 服务发出一些请求时,字段 IsNew 始终为 False,即使我确定在请求中将其发送为 True。我在使用 DateTime 字段时遇到了同样的问题 - 我使用值 DateTime.Min 发送它,但在 Web 服务中,我始终将此字段与 DateTime.Min 相等。
我可以使用字符串而不是 bool 和 DateTime 来解决这个问题,但是我无法解析这种类型的变量真的很烦人。
我做错了什么?
【问题讨论】:
-
显然你的对象没有被初始化
-
您确定访问的变量正确吗?阅读stackoverflow.com/questions/997545/…
-
@singsuyash 这是不可能的。所有其他字符串都已正确解析,因此我收到 Name 例如没有问题。问题出在 bool 和 DateTime 类型的属性上。
-
@i.gritco 您是否正确设置了填充标志? stackoverflow.com/questions/1680356/… 例如尝试添加此属性 [DataMember(IsRequired=true)]
-
@PaulZahra 谢谢,你拯救了我的一天。标志 IsRequired=true 解决了这个问题。
标签: c# asp.net web-services wcf boolean