WCF和二进制数据

WCF和二进制数据,wcf,Wcf,我需要传输一些二进制数据,特别是图像文件,作为WCF调用的一部分。我应该为WCF合同使用什么数据类型 [DataContract] public class ZombieTypeSUmmary { [DataMember] public string ZombieTypeName { get; set; } [DataMember] public int ZombieTypeKey { get; set; } [DataMember] publ

我需要传输一些二进制数据,特别是图像文件,作为WCF调用的一部分。我应该为WCF合同使用什么数据类型

[DataContract]
public class ZombieTypeSUmmary
{
    [DataMember]
    public string ZombieTypeName { get; set; }

    [DataMember]
    public int ZombieTypeKey { get; set; }

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

    [DataMember]
    public ??? ThumbnailImage { get; set; }
}
在大多数情况下,字节[]是最佳选择。除非您有非常大的二进制数据,而这似乎不是您的情况,因为您谈论的是缩略图,这是您应该使用的,因为所有序列化程序都支持它

如果你说的是非常大的二进制数据,你想将对象流化,而不是将其序列化到缓冲区然后传输,那么它就不那么简单了。没有直接支持数据契约内部的流式传输,但有一些东西可以使用,我在的帖子中指出了这一点。

byte[]在大多数情况下是最佳选择。除非您有非常大的二进制数据,而这似乎不是您的情况,因为您谈论的是缩略图,这是您应该使用的,因为所有序列化程序都支持它


如果你说的是非常大的二进制数据,你想将对象流化,而不是将其序列化到缓冲区然后传输,那么它就不那么简单了。没有直接支持数据合同内部的流式传输,但有一些东西可以使用,我在上一篇文章中指出了这一点。

谢谢,这听起来似乎增加了我的两个使用案例。在使用多大的二进制内容之后,流式传输应该被使用?当二进制数据超过1MB、5MB、10MB、50MB、100MB…时?谢谢,这听起来好像增加了我的两个用例。在使用多大的二进制内容之后,应该使用流媒体?当二进制数据大于1MB、5MB、10MB、50MB、100MB时。。。?