本文介绍了WCF - MessageBodyMember - Stream - “值不能为空"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含一个 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 - “值不能为空"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 03:41