以前那裏可以通過SOAP接口輕鬆訪問bing翻譯器。現在它已經遷移到Windows Azure。我已在Azure市場上註冊每月10000封信件(免費)。如何通過翻譯器API翻譯文本,用於C#中的Windows Phone?請幫忙。我不知道如何使用BeginExecute和EndExecute進行查詢。如何通過Windows Azure使用Microsoft Translator API,適用於Windows Phone?
我已經下載並將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。結果具有屬性IsCompleted爲true,並且statusCode爲OK。 我無法弄清楚如何去做這件事。請幫忙。 謝謝
非常感謝。我認爲這應該工作,但UseDefaultCredentials是哪個類的屬性。它應該是用戶定義的嗎?它不是所提供的TranslatorContainer類的一部分。 –
我可以在網上聊到你嗎?我想問一些關於這方面的事情。 –
@Avkash - 我收到類似的錯誤作爲OP。我試圖添加將「UseDefaultCredentia ls」設置爲false的代碼行,但TranslatorContainer中的該變量不可用。你能解釋一下嗎?我在C#中爲本地Windows應用程序工作。 – trumpetlicks