我找到了解决此问题的方法。
这个网站之前解决了我很多问题,所以我认为很高兴分享回来。
您的问题的快速回答是:
string empty = context.Execute<string>(new Uri("Operation", UriKind.Relative)).FirstOrDefault();
响应时“空”字符串应为空或空。它“解决”了上面帖子中提到的 HttpWebRequest 方法。
此外,还可以使用此技术恢复原始类型。
假设我有这个方法:
[WebGet]
public bool Authenticate(string Username, string Password)
{...do stuff here...}
当您尝试正常执行时,它会失败(Vitek Karas 在上面的回复中很好地解释了这一点):
var query = context.CreateQuery<bool>("Authenticate").AddQueryOption("Username", "'itye'").AddQueryOption("Password","'123456'");
DataServiceCollection<bool> list = new DataServiceCollection<bool>();
list.Load(query);
但以下方法可以解决问题:
var query = context.CreateQuery<bool>("Authenticate").AddQueryOption("Username", "'itye'").AddQueryOption("Password","'123456'");
bool authenticated = context.Execute<bool>(new Uri(query.RequestUri.ToString().Replace("Authenticate()", "Authenticate"))).FirstOrDefault();
请注意 Replace("Authenticate()", "Authenticate"),它在查询字符串中省略了 ()(否则会导致错误)。
希望对您有所帮助。
- 伊耶