読者です 読者をやめる 読者になる 読者になる

みかづきメモ

学習したことのメモとか、日記とか、備忘録。

ApiInformation.IsTypePresent に渡す値

C# UWP

前の記事にて、 ApiInformation.IsTypePresenttypeof で指定したのだけれども、
このようなツイートを見かけて心配になったので、試してみました。

コードは下の感じ。

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
    if (!ApiInformation.IsTypePresent(typeof(JapanesePhoneticAnalyzer).ToString()))
    {
        TextBlock.Text = "サポート外";
        return;
    }

    var list = JapanesePhoneticAnalyzer.GetWords(TextBox.Text, false);
    TextBlock.Text = string.Join(string.Empty, list.Select(w => w.YomiText));
}

この中で使っている JapanesePhoneticAnalyzer は Desktop のみサポートされています。

JapanesePhoneticAnalyzer class - Windows app development

これを、私の MADOSMA にリリースビルドで投げて試してみました。

f:id:MikazukiFuyuno:20160621024929p:plain:w250

とりあえず、 typeof().ToString() でも大丈夫そうな感じでした。
他に Desktop 専用 API などについて書いてあるものないかなと探したら、

Desktop Extension SDKにしかないAPIをMobile上で叩くとどうなるのか – garicchi.com

どうやら、 API は叩けるけども、結果が null になるだけなようなので、
直接文字列での指定と typeof().ToString() は好みの方を使えばいいっぽいです。