2

Windows 8 Xaml / C# Metro アプリケーションから DictService Web サービスを使用しようとしていますが、問題が発生しています。

DictService の WSDL はhttp://services.aonaware.com/DictService/DictService.asmx?WSDLです。

しかし、サービス参照を追加すると、次の警告が表示されます。

カスタム ツールの警告: アドレス 'http://services.aonaware.com/DictService/DictService.asmx' のエンドポイント 'DictServiceSoap12' は、Windows Metro スタイル アプリと互換性がありません。スキップしています...

これを乗り越えて、Metro Applciation から DictService を使用する方法についてのアイデアはありますか?

4

1 に答える 1

4

私はこれを行う方法を考え出したので、少しコードを投稿して自分の質問に答えたほうがいいと思いました...Windows8メトロアプリからXMLWebサービスを呼び出すことに興味がある人にも役立つかもしれません。

    public async Task<List<WordDefinition>> GetDefinitions(string word)
    {
        try
        {
            HttpClient httpclient = new HttpClient();
            var dictService = await httpclient.GetStringAsync("http://services.aonaware.com/DictService/DictService.asmx/DefineInDict?DictId=wn&word=" + word);
            XNamespace ns = "http://services.aonaware.com/webservices/";
            var dictInfo = XElement.Parse(dictService);

            var definitions = dictInfo.Descendants(ns + "Definitions");

            List<WordDefinition> defInfo = (from definition in definitions.Descendants(ns + "Definition")
                                            select new WordDefinition
                                            {
                                                Word = definition.Element(ns + "Word").Value,
                                                Definition = definition.Element(ns + "WordDefinition").Value

                                            }).ToList<WordDefinition>();

            return defInfo;
        }
        catch (Exception ex)
        {
            return new List<WordDefinition>();
        }

    }

    public class WordDefinition
    {
        public string Word { get; set; }
        public string Definition { get; set; }
    }
于 2012-05-08T15:58:01.703 に答える