问题描述
我有一个包含一个 BodyMember 的 MessageContract.当我尝试在不初始化 BodyMember 的情况下发送该消息合同时,我得到以下异常:
I have a MessageContract containing one BodyMember.When I try to send that message contract without initializing that BodyMember I get following excepton:
System.ArgumentNullException 发生Message=Value 不能为空.参数名称:FileStream
System.ArgumentNullException occurred Message=Value cannot be null.Parameter name: FileStream
如果我将其更改为 MessageHeader,它将起作用(但我需要它保持 BodyMember).是否有可能 MessageBodyMember 不能为 null 或 Stream 不能为 null?
If I change it to MessageHeader it will work (but I need it to stay BodyMember).Is it possible that MessageBodyMember can't null or that Stream can't be null?
这是消息合同:
[MessageContract]
public class AdsAdminRequest : ServiceMessageRequest
{
[MessageHeader]
public AdsAdminCriteria Criteria { get; set; }
[MessageHeader]
public AdDto Ad { get; set; }
[MessageBodyMember]
public Stream FileStream { get; set; }
}
推荐答案
Stream 是一个特例,意思是消息正文中的所有内容".如果您真的想发送 null
(或 Nothing
),请考虑传递 Stream.Null
.
Stream is a special case which means "everything in the message body". If you really want to send null
(or Nothing
), consider passing Stream.Null
.
这篇关于WCF - MessageBodyMember - Stream - “值不能为空"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!