我有一个定义如下的 WCF 方法:
[OperationContract]
Message GetSourceData(SourceDataQuery sourceDataQuery);
实际的实现是这样的:
public Message GetSourceData(SourceDataQuery sourceDataQuery)
{
IEnumerable<ExportRow> sourceData = repo.GetData();
var customBodyWriter = new CustomBodyWriter(sourceData);
var message = Message.CreateMessage(MessageVersion.Soap11, "GetSourceData", customBodyWriter);
return message;
}
SourceDataQuery 对象:
[MessageContract]
public class SourceDataQuery
{
[MessageBodyMember]
public int DataSourceId { get; set; }
[MessageBodyMember]
public int[] FiledIds { get; set; }
[MessageBodyMember]
public string Filter { get; set; }
[MessageBodyMember]
public string Sort { get; set; }
}
我的问题是当我将此 WCF 服务添加到另一个项目并通过添加服务引用创建代理时,我的代理类有一个 GetSourceData 方法,但它的输入参数丢失。它不带任何参数。我可以看到 SourceDataQuery 对象是在代理类中正确生成的。
知道为什么缺少输入参数吗?