2011-09-06 25 views
5

Mam MessageContract zawierający jeden BodyMember. Podczas próby wysłania tego komunikatu umowy bez inicjowania tego elementu BodyMember otrzymuję następujące wyjątki:WCF - MessageBodyMember - Stream - "Wartość nie może być pusta"

Wystąpił wyjątek System.ArgumentNullException Wiadomość = wartość nie może być pusta. Nazwa parametru: FileStream

Jeśli zmienię go na MessageHeader, będzie działać (ale potrzebuję go, aby pozostać BodyMember). Czy jest możliwe, że MessageBodyMember nie może null lub że Stream nie może być pusty?

To MessageContract:

[MessageContract] 
public class AdsAdminRequest : ServiceMessageRequest 
{ 
    [MessageHeader] 
    public AdsAdminCriteria Criteria { get; set; } 

    [MessageHeader] 
    public AdDto Ad { get; set; } 

    [MessageBodyMember] 
    public Stream FileStream { get; set; } 
} 

Odpowiedz

11

Stream jest szczególnym przypadkiem, który oznacza "wszystko w treści wiadomości". Jeśli naprawdę chcesz wysłać null (lub Nothing), rozważ przekazanie Stream.Null.

+2

Dzięki, pomogło to. – mersadk

Powiązane problemy