日期:2014-05-18  浏览次数:20797 次

怎么“实体类”不用加“DataContract”、“DataMember”
一、项目中用到了“启用了 Silverlight 的WCF服务”,使用时如下:

[ServiceContract(Namespace = "")]
[SilverlightFaultBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ChartsService
{
[OperationContract]
public void DoWork()
{
// 在此处添加操作实现
return;
}
  [OperationContract]
  public List<UseType> GetUseType()
  {
  return new BaseClass().GetUseType("MeterUseType");
  }
   
}


二、对应的“UseType类”:

namespace Mycems.Model
{
  public class UseType
  {
  public string CodeId
  {
  get;
  set;
  }


  public string CodeName
  {
  get;
  set;
  }
  }
}

问题一:服务类中有“ServiceContract”和“OperationContract”两个标记,而在实体类“UseType”中却没有使用“DataContract”和“DataMember”标记,但是服务正常提供请问这是为什么???

问题二:如果是传统的“WCF 服务”而不是“启用了 Silverlight 的WCF服务”,是不是就会报错?

问题三:不用“DataContract”和“DataMember”标记有什么影响呢?

------解决方案--------------------
.Net 3.5SP1之后就不用了,一次偶然的失误中也发现了这个问题
http://www.cnblogs.com/zlgcool/archive/2008/11/22/1338850.html

这个跟.Net版本有关

------解决方案--------------------
百毒http://baike.baidu.com/view/1114894.htm