新添加的MessageContract不会出现在服务引用元数据中

时间:2013-06-14 16:35:14

标签: c# wcf messagecontract

我有一个名为Document的MessageContract,如下所示:

[MessageContract]
public class Document : IDisposable
{
    [MessageHeader(MustUnderstand = true)]
    public string FileName;

    [MessageHeader(MustUnderstand = true)]
    public bool IsUploaded = false;

    [MessageBodyMember(Order = 1)]
    public Stream FileByteStream;

    public void Dispose()
    {
        if (FileByteStream != null)
        {
            FileByteStream.Close();
            FileByteStream = null;
        }
    }
}

大多数情况下这都很好。它出现在intellisense中,我可以很好地实例化它。但我需要添加一个看起来像这样的新合同:

[MessageContract]
public class Dummy
{
    public int DummyID;
    public Image DummyImage;
    public int PageNumber;
}

看起来很简单。我构建了项目并更新了我的服务参考。但是那个类没有显示出来,我无法实例化它。

关于我在这里做错了什么想法?

2 个答案:

答案 0 :(得分:0)

在这里,您尚未声明将放置DummyId,DummyImage和PageNumber的位置。在消息正文或消息头中。消息合同使用的更多详细信息是here

答案 1 :(得分:0)

我从here得到了答案。

只有服务实际使用的类型才会反映在元数据中。

我没有使用DataContract的操作合同。我当时不需要一个,所以我没有成功。但显然,除非你有一个使用它,否则不会为该DataContract生成元数据。

相关问题