我有一个名为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;
}
}
}
这在大多数情况下是可以的。它出现在智能感知中,我可以很好地实例化它。但是我需要添加一个新的合约,看起来像这样:
[MessageContract]
public class Dummy
{
public int DummyID;
public Image DummyImage;
public int PageNumber;
}
看起来很简单。我建立了项目并更新了我的服务参考。但是那个类没有出现,我不能实例化它
你知道我哪里做错了吗?
在这里,您没有声明DummyId, DummyImage和PageNumber将放在哪里。在消息正文或消息头中。关于消息契约用法的更多细节请参见此处。
我从这里得到了答案。
只有服务实际使用的类型才会反映在元数据中。
我没有使用数据合约的操作合约。我当时不需要,所以我没有做。但是,显然,除非您有一个使用它,否则不会为该DataContract生成元数据。