fri*_*ism 8 c# wcf entity-framework wcf-data-services
我正在创建API的过程与Hanselman显示可以为Stackoverflow完成的方式大致相同.我有一堆EntityObject实体框架生成的类和一个DataService将它们序列化为Atom和JSON的东西.我想通过Web服务公开一些生成的属性.将FullName视为通过连接First-和LastName生成的(但有些更复杂).我已将这些添加到扩展Entity Framework EntityObject的部分类中,并为它们提供[DataMember]属性,但它们不会显示在服务中.这是一个示例属性(set为了好的措施而抛出,没有它也不起作用):
[DataMember]
public string FullName
{
get
{
return (this.FirstName ?? "") + " " + (this.LastName ?? "");
}
set { }
}
Run Code Online (Sandbox Code Playgroud)
我在通过 WCF 服务公开实体对象时遇到了同样的问题,并使用了您链接到此处的解决方法,即将以下属性添加到属性以强制对它们进行序列化。
[global::System.Runtime.Serialization.DataMemberAttribute()]
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何“更好”的方法来实现这一点。
例如,给定一个名为 Teacher 的实体,其中包含 Title、Forenames 和 Surname 字段,您可以为 Teacher 添加一个部分类,如下所示:
public partial class Teacher
{
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string FullName
{
get { return string.Format("{0} {1} {2}", Title, Forenames, Surname); }
set { }
}
}
Run Code Online (Sandbox Code Playgroud)
然后,只要您的 WCF 服务接口引用此类,那么额外的属性就会被序列化并可供服务的使用者使用。
例如
[OperationContract]
List<Teacher> GetTeachers();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |