2012-10-18 114 views
1

我需要传输一些二进制数据,特别是图像文件,作为我的WCF调用的一部分。我应该为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; } 
} 

回答

4

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

如果你在谈论非常大的二进制数据(你想要流式传输对象,而不是序列化到缓冲区然后传输它),那么它并不那么简单。没有直接支持流式内部数据合同,但有几件事可以使用,我在http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/25/wcf-streaming-inside-data-contracts.aspx的帖子中指出。

+0

谢谢,这听起来像它为我的两个用例。 –

+0

应该使用什么样的二进制内容大小应该使用流?当二进制数据大于1MB时,5MB,10MB,50MB,100MB,...? – Mas