这个问题建立在之前的问题的基础上(尽管偏离主题)我昨天问过 https://stackoverflow.com/questions/4889439/getting-a-type-specific-response-from-a-wcf-rest-generic-request。
请先阅读一下。
好的 - 在我的 WCF REST 项目中,在将 JSON 序列化到移动客户端之前,我已将域对象转换为数据传输对象 (DTO)。例如,这是我的用户 DTO:
[DataContract]
public class UserDto
{
[DataMember]
public string UserId { get; set; }
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string Password { get; set; }
}
在我的 User.svc 服务中,UserDto 被序列化回客户端,如下所示:
public UserDto GetUserById(string userid)
{
var obj = UserRepository.GetUserById(userid);
return new Contracts.UserDto
{
Email = obj.Email.ToString(),
Password = obj.Password.ToString(),
UserId = obj.UserId.ToString(),
UserName = obj.UserName.ToString()
};
}
现在,我有一个公开以下方法的基类:
public virtual Stream GetGroupById(string id)
到我的 Dashboard.svc 服务。它返回以下内容:
return new MemoryStream(bytes);
在这个服务中,我想重写该方法并返回
将结果发送给客户端的方式与我序列化上述 UserDto 的方式相同。
我的问题是- 如何将 Stream 类型的方法转换为数据传输对象并将结果(作为 JSON 格式的字符串)序列化到客户端???
感谢您的帮助。