将大量DTO发送回客户端

时间:2018-10-06 13:38:13

标签: c# wcf

我准备了具有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本身需要很长时间?还有其他方法可以实现这一目标吗?

0 个答案:

没有答案