Help us understand the problem. What is going on with this article?

Prism.FormsのNavigationService用のViewを一括登録する

More than 3 years have passed since last update.

WPFではかずきさんのこの記事の
http://blog.okazuki.jp/entry/2014/09/11/224645
Bootstrapperの作成の項で書いてあるViewの一括登録を使ってたんですが
こんな感じでPrism.FormsのRegisterTypeForNavigationも一括でできないもんかなといろいろ試してみたらこんな感じで出来ました。

コード

protected override void RegisterTypes() {

    this.GetType().GetTypeInfo().Assembly
            .DefinedTypes
            .Where(t => t.Namespace?.EndsWith(".Views", System.StringComparison.Ordinal) ?? false)
            .ForEach(t => {
                Container.RegisterTypeForNavigation(t.AsType(), t.Name);
            });

}

この例では.Viewsで終わる名前空間の型を根こそぎ登録しているだけです。
別の場所に置いているならViewのある名前空間を指定するようにしてください。

追記

匿名型がある場合にNamespaceがnullになり、そこで落ちてしまう問題があったので以下のように修正しました。

.Where(t => t.Namespace.EndsWith(".Views", System.StringComparison.Ordinal))

.Where(t => t.Namespace?.EndsWith(".Views", System.StringComparison.Ordinal) ?? false)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away