WCF 自托管服务,参数(字符串)断言失败
WCF self hosted service, parameter (string) assertion fails
我有一个自托管的 wcf 服务,它有三个 OperationContract,其中两个应该接受参数
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "json/{id}")]
string JSONData(string id);
基于这个参数我执行一些逻辑和return数据:
public string JSONData(string id)
{
if (id == "1")
{
string json = "{ \"months\":[{ \"name\":\"January\"}, { \"name\":\"Febuary\"}, { \"name\":\"March\"} ]}";
return json;
}
else
{
return "Id not found, invalid request";
}
}
我用邮递员来做这个请求:
然而,无论我填写什么id,我总是得到:
"Id not found, invalid request"
令我更加困惑的是,以下内容确实有效:
public string JSONData(string id)
{
return Data(id);
}
private string Data(string id)
{
// logic
return "Data: " + id;
}
这让我相信,与其说是输入失败,不如说是 if 语句中的断言。
已将逻辑更改为:
public string JSONData(string id)
{
if (id.Equals("name"))
{
return "equal";
}
else {
return Data(id);
}
}
private string Data(string id)
{
// logic
return "Data: " + id;
}
if 语句中的断言仍然没有完成,但是我看不出我在以这种方式断言字符串相等时做错了什么。
不胜感激。
谢谢。
我不知道你想完成什么,但使用 wcftestclient 我可以return你问的。
这就是你在代码中的调用方式
检查此页答案
我有一个自托管的 wcf 服务,它有三个 OperationContract,其中两个应该接受参数
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "json/{id}")]
string JSONData(string id);
基于这个参数我执行一些逻辑和return数据:
public string JSONData(string id)
{
if (id == "1")
{
string json = "{ \"months\":[{ \"name\":\"January\"}, { \"name\":\"Febuary\"}, { \"name\":\"March\"} ]}";
return json;
}
else
{
return "Id not found, invalid request";
}
}
我用邮递员来做这个请求:
然而,无论我填写什么id,我总是得到:
"Id not found, invalid request"
令我更加困惑的是,以下内容确实有效:
public string JSONData(string id)
{
return Data(id);
}
private string Data(string id)
{
// logic
return "Data: " + id;
}
这让我相信,与其说是输入失败,不如说是 if 语句中的断言。
已将逻辑更改为:
public string JSONData(string id)
{
if (id.Equals("name"))
{
return "equal";
}
else {
return Data(id);
}
}
private string Data(string id)
{
// logic
return "Data: " + id;
}
if 语句中的断言仍然没有完成,但是我看不出我在以这种方式断言字符串相等时做错了什么。
不胜感激。
谢谢。
我不知道你想完成什么,但使用 wcftestclient 我可以return你问的。
这就是你在代码中的调用方式
检查此页答案