以前,bing 翻译器可以通过 SOAP 界面轻松访问。现在它已迁移到 Windows Azure。我在 Azure 市场注册了每月 10000 封信(免费)。如何通过 C# 中的 windows phone 通过翻译器 api 翻译文本?请帮忙。我不确定如何使用 BeginExecute 和 EndExecute 进行查询。
我已下载 TranslatorContainer.cs 并将其添加到我的项目中。现在我只是想用 GetLanguagesForTranslation 方法获取语言。这是我写的代码。
public partial class PhonePage1 : PhoneApplicationPage
{
public PhonePage1()
{
InitializeComponent();
Translator transInstance = new Translator();
}
class Translator
{
private Uri service_root;
private TranslatorContainer context;
public Translator()
{
service_root = new Uri("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/");
context = new TranslatorContainer(service_root);
context.Credentials = new NetworkCredential("ID","...........");
var query = context.GetLanguagesForTranslation();
query.BeginExecute(OnQueryComplete, query);
}
public void OnQueryComplete(IAsyncResult result)
{
var query = result as DataServiceQuery<Language>;
string langstring = "";
foreach (Language lang in query.EndExecute(result))
{
langstring += lang.Code + "\n";
}
MessageBox.Show(langstring);
}
}
}
在 OnQueryComplete() 中,query
即使在分配之后也是 null。结果的 Properties IsCompleted 为 true,并且 statusCode 为 OK。我不知道该怎么做。请帮忙。谢谢