我正在尝试创建一个提供SOAP和JSON端点的WCF服务
为了将请求URL的参数映射到方法参数,我使用WebGetAttribute
的{{1}}方法。
这适用于期望简单数据类型参数的方法。
但是,以下方法需要一个复杂的对象,我不想因为服务的SOAP部分而改变它:
UriTemplate
而TestParameters看起来像(具有更多属性):
[OperationContract]
Person Test(TestParameters parameters);
现在通过GET调用方法时,我希望能够从请求URI初始化[DataContract]
public class TestParameters
{
[DataMember]
public string First
{
get;
set;
}
[DataMember]
public string Second
{
get;
set;
}
}
和parameters.First
,例如
parameters.Second
我已经尝试过申请
了/Test?first=Foo&second=Bar
方法。
但是,WCF似乎不支持此语法。错误消息显示:
System.InvalidOperationException:合同中的“测试”操作 'IService1'有一个UriTemplate,它需要一个名为的参数 'PARAMETERS.FIRST',但没有带有该名称的输入参数 操作。
是否有其他语法允许将URI参数映射到参数对象的属性?
否则,您是否知道是否可以轻松添加此行为?
非常感谢您的回复!