首页 > 解决方案 > 将大量 DTO 发送回客户端

问题描述

我准备了一个具有 10 个字符串属性的 DTO。我需要将这些 DTO 的 500 个对象的集合从 WCF 服务传递给客户端。

//DTO with object info
[DataContract()]
public class RTVPIDObj
{
    public RTVPIDObj()
    {
    }
    [DataMember()]
    public string OBID { get; set; }

    [DataMember()]
    public string UID { get; set; }

    [DataMember()]
    public string NAME { get; set; }

    [DataMember()]
    public string DESCRIPTION { get; set; }
    .
    .
    .
    .
}

每当用户请求时,我需要传递一个选定对象的属性,该对象通常包含来自 WCF 服务的 500 个字符串属性。

//DTO with properties info
[DataContract()]
public class RTVPIDProp
{
    public RTVPIDProp()
    {
    }

    [DataMember()]
    public List<Tuple<string, string>> Properties { get; set; }
}

我可以在请求时传递此属性 DTO,但在服务器端即时准备该属性 DTO 需要很长时间。

所以我正在考虑一次传递对象 DTO 的集合,其中每个对象也包含属性 DTO。

//DTO with object info and properties info
[DataContract()]
public class RTVPIDObj
{
    public RTVPIDObj()
    {
    }
    [DataMember()]
    public string OBID { get; set; }

    [DataMember()]
    public string UID { get; set; }

    [DataMember()]
    public string NAME { get; set; }

    [DataMember()]
    public string DESCRIPTION { get; set; }
    .
    .
    .
    .
    [DataMember()]
    public List<Tuple<string, string>> Properties { get; set; }
}

在一些后台进程的帮助下,我也可以轻松地准备这个带有属性的集合。然后,无论何时在客户端选择对象,都无需进行多次客户端-服务器调用。

这种将巨大的 DTO(500 个对象,其中每个对象由 500 个字符串集合属性组成)的方式传递给客户端是一种不好的方法吗?并且发送这种巨大的DTO本身需要很长时间???还有其他方法可以实现这一目标吗?

标签: c#wcf

解决方案


推荐阅读