返回自定义数据WCF

时间:2011-08-04 11:20:14

标签: wcf entity-framework-4

我是WCF的新手,正在寻找有关特定问题的建议。我正在使用Enitity Framework,并希望通过WCF将我的实体作为JSON返回。但是我只想在某些情况下返回某些信息。例如,在一种方法中,我可能想要返回用户用户名及其用户ID,在另一个实例中,我想要返回用户用户名,用户ID和电话号码。最初我想也许我可以返回一个匿名类型,如

var obj = new { username = user.UserName, userid = user.UserId };

但经过研究,我发现这不是一个好主意。然后我想到返回键值的字典,该方法的问题是返回的JSON:

{"key":"username","Value":"Andrew"}

我正在追求

的内容
{"username":"Andrew"}

我也有自己的类型。有没有办法排除属性?即如果我的类型有财产电话,我可以在某些情况下将其排除吗?

非常感谢任何帮助/建议

1 个答案:

答案 0 :(得分:0)

我知道在DataContractSerializer中,您可以使用EmitDefaultValue,例如,您可以拥有一个名为UserInfo的合约


     [DataContract]
     public class UserInfo
     {
         [DataMember]
         public string UserID { get; set; }

         [DataMember]
         public string UserName { get; set; }

         [DataMember(EmitDefaultValue=false)]
         public int Age { get; set; }

         [DataMember(EmitDefaultValue=false)] 
         public DateTime Time { get; set; }
     }



我不知道JSON序列化程序是否支持EmitDefaultValue,您可以自己尝试吗?