Prism.WPFのpublicなinterfaceの一覧及びその使用方法についての調査

#はじめに
[[WPF] Added support for IDestructible #1709](https://github.com/PrismLibrary/Prism/pull/1709)にある通りIDestructibleなるものがPrism.Wpfに追加されるようです。
これを見てそもそもPrism.Wpfにて公開されているインターフェースには何があって、使用側で実装しなければいけないインターフェースが何なのかという疑問が発生したので、Prism.Wpfに関するpublic interfaceなインターフェースについて調査しました。
調査日時は2019/3末です。抜け漏れあったらごめんなさい。


# Prism

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [IActiveAware][] | Interface that defines if the object instance is active and notifies when the activity changes. | [解説しているページがありました。](https://migratory-worker.com/archives/tag/iactiveaware)[RegionActiveAwareBehavior](https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/Behaviors/RegionActiveAwareBehavior.cs)が処理しているようです。 |

# Prism.Logging

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [ILoggerFacade][] | Defines a simple logger façade to be used by the Prism Library. | [解説しているページがありました。](https://noxi515.hateblo.jp/entry/2018/04/28/221327)[EmptyLogger][]、[DebugLogger][]、[TextLogger][]や[TraceLogger][]が標準で用意されています。[ILoggerFacade][]を自分で実装すれば好きなロガーを使えます。[Log4Netに差し替えたサンプルがあるのでリンク貼っときます。](https://github.com/kwhrkzk/Prism7Sample/tree/master/LoggerFacadeSample)使うときは注入して使います。 |

# Prism.Events

いわゆる[オブザーバーパターン](https://qiita.com/shoheiyokoyama/items/d4b844ed29f84a80795b)用(PubSubパターン？)の機能です。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [IEventAggregator][] | Defines an interface to get instances of an event type. | [解説しているページがありました。](https://github.com/runceel/PrismEdu/tree/master/07.EventAggregator)これは自分では実装しないで注入して使用します。 |
| [IDelegateReference][] | Represents a reference to a \<see cref="Delegate"/>. | [DelegateReference][]に実装されています。This class is used internally by the Prism Library. だそうです。|
| [IEventSubscription][] | Defines a contract for an event subscription to be used by \<see cref="EventBase"/>. | [EventSubscription][]に実装されています。これも使用側では意識する必要はなさそうです。 |


# Prism.Interactivity.InteractionRequest

ダイアログに関する機能です。[IDialogService][]に代わるっぽいです。
InteractionRequestは残しておいてほしいですね。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [IInteractionRequestAware][] | Interface used by the \<see cref="PopupWindowAction"/>. If the DataContext object of a view that is shown with this action implements this interface it will be populated with the \<see cref="INotification"/> data of the interaction request as well as an \<see cref="Action"/> to finish the request upon invocation. | [解説しているページがありました。](https://github.com/runceel/PrismEdu/tree/master/05.InteractionRequest)参考に[ここ](https://qiita.com/kwhrkzk/items/d1348aee5fed4cd31603)や[ここ](https://qiita.com/kwhrkzk/items/5295d2cd55ac3610a36f)や[ここ](https://qiita.com/kwhrkzk/items/8d5c78e68b34fef38ff2)も。
| [Iconfirmation][]: [Inotification][] | Represents an interaction request used for confirmations. [Obsolete("Please use the new IDialogService for an improved dialog experience.")] | 同上 |
| [Inotification][] | Represents an interaction request used for notifications. [Obsolete("Please use the new IDialogService for an improved dialog experience.")] | 同上 |
| [IInteractionRequest][] | Represents a request from user interaction. View models can expose interaction request objects through properties and raise them when user interaction is required so views associated with the view models can materialize the user interaction using an appropriate mechanism. [Obsolete("Please use the new IDialogService for an improved dialog experience.")] | 同上 |


# Prism.Ioc

コンテナに関する機能です。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [IContainerRegistry][] |   | [解説しているページがありました。](https://blog.okazuki.jp/entry/2019/02/05/094546)[PrismApplicationBase][]にて登場します。仮引数で指定されているのでそこで使用します。登録用です。ViewModel等で注入しても手に入りません。 |
| [IContainerProvider][] |   | [IModule][]で登場します。こっちは解決用です。ViewModel等で注入しても手に入りません。 |
| [IContainerExtension][]: [IContainerProvider][], [IContainerRegistry][] |   | これはViewModel等で注入したら手に入ります。複雑な解決やそこで生成したインスタンスを登録しようと思ったら必要になります。 |
| [IContainerExtension\<TContainer>][IContainerExtension]: [IContainerExtension][] |   | どこで使ってるかわかりませんでした。固有のコンテナを取得しようと思ったらIContainerExtensionを注入してGetContainerを呼ぶか(Extensionとして定義されてた)、最初からDryIoc.IContainerとして注入すれば(固有のコンテナとしてDryIocを使っていれば。使っているコンテナによってIContainerの型の置き場所は異なります)手に入りました。 |
| [IAutofacContainerExtension][]: [IContainerExtension][]\<IContainer> | Provides customization extensions for Autofac Applications  | Prism.Autofac.Ioc名前空間にありました。コンテナにAutofacを使用していれば使えるはず。  |

# Prism.Services.Dialogs

ダイアログに関する機能です。2019/3末時点ではPrism7.2preで追加されています。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [IDialogService][] |   | [ここ](https://qiita.com/kwhrkzk/items/8d5c78e68b34fef38ff2)で説明しています。 |
| [IDialogAware][] |   | 同上 |
| [IDialogParameters][] | TODO: this can eventually be replaced with INavigationParameters | 同上 |
| [IDialogResult][] |   | 同上 |
| [IDialogWindow][] |   | 同上 |


# Prism.Navigation
調査のモチベーションになった[Idestructible][]が配置されています。
Prism.Coreっぽいところに配置されていますがPrism.Wpfではほとんど使用していなさそう。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [INavigationAware][INavigationAware2]: [INavigatedAware][], [INavigatingAware][] | Provides a way for ViewModels involved in navigation to be notified of navigation activities. | 同名の型がPrism.RegionにあってPrism.Wpfではそちらを使用していました。 |
| [Idestructible][] |   | (2019/3/末では7.2preにもまだ入っていませんのでコードからなんとなく動作を予想してます。)ViewModelに実装します。[DestructibleRegionBehavior](https://github.com/PrismLibrary/Prism/pull/1709/commits/df7414cea36ae5e1b02e70b5a636d8cf252c0ae1#diff-63f0202c09e8e402ebcd30f9572e4a06)というBehaviorが追加されるようでNotifyCollectionChangedAction.Removeのときに[Idestructible][]のDestroyを呼んでくれるようです。画面のデストラクタとかファイナライザみたいな感じ。 |
| [INavigatingAware][] | Provides a way for ViewModels involved in navigation to be notified of navigation activities prior to the target Page being added to the navigation stack. | Prism.Coreっぽいところに配置されているがPrism.Wpfでは使用していなさそう。 |
| [INavigatedAware][] | Provides a way for ViewModels involved in navigation to be notified of navigation activities after the target Page has been added to the navigation stack. | 同上 |
| [INavigatedAwareAsync][] | Provides a way for ViewModels involved in navigation to be notified of navigation activities after the target Page has been added to the navigation stack. | 同上 |
| [INavigationService][] | Provides page based navigation for ViewModels. | 同上 |
| [INavigationResult][] |   | 同上 |
| [INavigationParametersInternal][] |   | 同上 |
| [INavigationParameters][]: IEnumerable\<KeyValuePair\<string, object>> |   | 同上 |
| [IConfirmNavigation][] | Provides a way for ViewModels involved in navigation to determine if a navigation request should continue. | 同上 |
| [IConfirmNavigationAsync][] | Provides a way for ViewModels involved in navigation to asynchronously determine if a navigation request should continue. | 同上 |


# Prism.Regions

Regionに関する機能が定義されていました。単に使用するだけならばいくつかのインターフェースを継承するだけで問題なさそうです。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [INavigationAware][] | Provides a way for objects involved in navigation to be notified of navigation activities. | ViewModelに実装する。画面遷移時に呼ばれるメソッドを用意できる。 |
| [IConfirmNavigationRequest][]: [INavigationAware][] | Provides a way for objects involved in navigation to determine if a navigation request should continue. | [INavigationAware][]に加えてConfirmNavigationRequestが追加されている。仮引数でもらうcontinuationCallbackにfalseを指定して返せば画面遷移を拒否できる。 |
| [INavigateAsync][] | Provides methods to perform navigation. Convenience overloads for the methods in this interface can be found as extension methods on the \<see cref="NavigationAsyncExtensions"/> class. | 画面遷移する際に使うRequestNavigateがある。これ単体では実装することも使用することもないはず。 |
| [IRegionNavigationService][]: [INavigateAsync][] | Provides navigation for regions. | [ここ](https://qiita.com/kwhrkzk/items/719354e86a15ccac7296)で説明しています。 |
| [IRegionNavigationJournal][] | Provides journaling of current, back, and forward navigation within regions. | 同上 |
| [IJournalAware][] | Provides a way for objects involved in navigation to opt-out of being added to the IRegionNavigationJournal backstack. | 同上 |
| [IRegionNavigationJournalEntry][] | An entry in an IRegionNavigationJournal representing the URI navigated to. | [RegionNavigationJournalEntry][]に実装されている。履歴の入れ物クラス。明示的に履歴を格納する[IRegionNavigationJournal][]のRecordNavigationの引数で指定するときに使う。 |
| [IRegionManager][] | Defines an interface to manage a set of <see cref="IRegion">regions</see> and to attach regions to objects (typically controls). | Regionについて操作したい場合に注入する。RequestNavigateもできる。 |
| [IRegionMemberLifetime][] | When implemented, allows an instance placed in a \<see cref="IRegion"/> that uses a \<see cref="RegionMemberLifetimeBehavior"/> to indicate it should be removed when it transitions from an activated to deactived state. | ViewModelに実装する。画面遷移する際にfalseにしておくと画面を破棄してくれる。[RegionMemberLifetimeAttribute][]属性で指定することもできる。[RegionMemberLifetimeBehavior][]で制御している。ViewにもViewModelにも指定がないとtrueが返る。 |
| [Iregion][]: [INavigateAsync][], INotifyPropertyChanged | Defines a model that can be used to compose views. | 独自のRegionを作りたいなら継承して実装するかも。 |
| [IRegionBehavior][] | Interface for allowing extensible behavior on regions. | [解説しているページがありました。](https://github.com/runceel/PrismEdu/tree/master/09.RegionBehavior) |
| [IRegionBehaviorCollection][]: IEnumerable\<KeyValuePair\<string, IRegionBehavior>> | Defines the interface for a collection of \<see cref="IRegionBehavior"/> classes on a Region. |   |
| [IRegionBehaviorFactory][]: IEnumerable\<string> | Interface for RegionBehaviorFactories. This factory allows the registration of the default set of RegionBehaviors, that will be added to the \<see cref="IRegionBehaviorCollection"/>s of all \<see cref="IRegion"/>s, unless overridden on a 'per-region' basis.  [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "It is more of a factory than a collection")] |   |
| [IRegionViewRegistry][] | Defines the interface for the registry of region's content. |   |
| [IViewsCollection][]: IEnumerable\<object>, INotifyCollectionChanged | Defines a view of a collection. |   |
| [IRegionAdapter][] | Defines an interfaces to adapt an object and bind it to a new \<see cref="IRegion"/>. |   |
| [IRegionManagerAccessor][] | Provides an abstraction on top of the RegionManager static members. | [DefaultRegionManagerAccessor][]に実装があるけどinternalなので使用する機会はない、はず。 |
| [IRegionNavigationContentLoader][] | Identifies the view in a region that is the target of a navigation request. |   |
| [IRegionCollection][]: IEnumerable\<[IRegion][]>, INotifyCollectionChanged | Defines a collection of <see cref="IRegion"/> uniquely identified by their Name. |   |
| [IHostAwareRegionBehavior][]: [IRegionBehavior][] | Defines a \<see cref="IRegionBehavior"/> that not allows extensible behaviors on regions which also interact with the target element that the \<see cref="IRegion"/> is attached to. | Prism.Regions.Behaviors名前空間にありました。 |

# Prism.Modularity

モジュール機能らへん。あんまり使ってないので調査少なめです。

| 名称 | 原文のコメント | コメント |
|:-:|:-:|:-:|
| [Imodule][] | Defines the contract for the modules deployed in the application. | [解説しているページがありました。](https://github.com/runceel/PrismEdu/tree/master/03.Module)[Prism7.1で破壊的変更](http://brianlagunas.com/whats-new-prism-7-1/)があり使い方がちょっと変わってました。 |
| [IModuleCatalogItem][] | Marker interface that allows both \<see cref="ModuleInfoGroup"/>s and \<see cref="ModuleInfo"/>s to be [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1040:AvoidEmptyInterfaces", Justification = "This is a marker interface")] |   |
| [IAssemblyResolver][] | Interface for classes that are responsible for resolving and loading assembly files. |   |
| [IModuleManager][] | Defines the interface for the service that will retrieve and initialize the application's modules. |   |
| [IModuleTypeLoader][] | Defines the interface for moduleTypeLoaders |   |
| [IModuleGroupsCatalog][] |   |   |
| [IConfigurationStore][] | Defines a store for the module metadata. |   |
| [IModuleInitializer][] | Declares a service which initializes the modules into the application. |   |
| [IModuleInfo][]: [IModuleCatalogItem][] |   |   |
| [IModuleInfoGroup][]: [IModuleCatalogItem][], IList\<[IModuleInfo][]>, Ilist | IList must be supported in Silverlight 2 to be able to add items from XAML |   |
| [IModuleCatalog][] | This is the expected catalog definition for the ModuleManager. The ModuleCatalog holds information about the modules that can be used by the application. Each module is described in a ModuleInfo class, that records the name, type and location of the module.  |   |
| [IModuleExport][] | Describe the Managed Extensibility Framework export of an IModule. This interface is used when importing classes exported with the ModuleExportAttribute. This interface and the ModuleExport class properties should match. | Prism.Mef.Modularity |








[IActiveAware]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/IActiveAware.cs
[IEventAggregator]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Events/IEventAggregator.cs

[IDelegateReference]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Events/IDelegateReference.cs
[IEventSubscription]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Events/IEventSubscription.cs
[IInteractionRequestAware]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Interactivity/InteractionRequest/IInteractionRequestAware.cs
[Iconfirmation]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Interactivity/InteractionRequest/IConfirmation.cs
[Inotification]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Interactivity/InteractionRequest/INotification.cs
[IInteractionRequest]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Interactivity/InteractionRequest/IInteractionRequest.cs
[IContainerExtension]:https://github.com/PrismLibrary/Prism/blob/b55b9676602470c6022f119ea130e8a4e92d3967/Source/Prism/Ioc/IContainerExtension.cs
[IContainerProvider]:https://github.com/PrismLibrary/Prism/blob/508b5c816815a9a24748ff694407c0ec4a36030a/Source/Prism/Ioc/IContainerProvider.cs
[IContainerRegistry]:https://github.com/PrismLibrary/Prism/blob/a9e22dfb12ee9c78e5cab9ff4fcad2e40f65bb38/Source/Prism/Ioc/IContainerRegistry.cs
[IAutofacContainerExtension]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Autofac.Wpf/Ioc/IAutofacContainerExtension.cs
[ILoggerFacade]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Logging/ILoggerFacade.cs
[IDialogResult]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Services/Dialogs/IDialogResult.cs
[IDialogParameters]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Services/Dialogs/IDialogParameters.cs
[IDialogWindow]:https://github.com/PrismLibrary/Prism/blob/2d68c0f063975affb81cc20393a1a00ba0eb5e65/Source/Wpf/Prism.Wpf/Services/Dialogs/IDialogWindow.cs
[IDialogAware]:https://github.com/PrismLibrary/Prism/blob/5111104178da72137f96be8e4d718c8403b7fff5/Source/Wpf/Prism.Wpf/Services/Dialogs/IDialogAware.cs
[IDialogService]:https://github.com/PrismLibrary/Prism/blob/388d7094980bfce89911c7c46694a678fbcfae28/Source/Wpf/Prism.Wpf/Services/Dialogs/IDialogService.cs
[INavigationResult]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigationResult.cs
[Idestructible]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/IDestructible.cs
[INavigationParametersInternal]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigationParametersInternal.cs
[INavigationParameters]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigationParameters.cs
[IConfirmNavigation]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/IConfirmNavigation.cs
[IConfirmNavigationAsync]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/IConfirmNavigationAsync.cs
[INavigationAware]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/INavigationAware.cs
[INavigatingAware]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigatingAware.cs
[INavigatedAware]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigatedAware.cs
[INavigatedAwareAsync]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigatedAwareAsync.cs
[INavigationService]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigationService.cs
[IRegionBehavior]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionBehavior.cs
[IRegionBehaviorCollection]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionBehaviorCollection.cs
[IRegionBehaviorFactory]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionBehaviorFactory.cs
[IRegionManager]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionManager.cs
[Iregion]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegion.cs
[INavigateAsync]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/INavigateAsync.cs
[IRegionViewRegistry]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionViewRegistry.cs
[IJournalAware]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IJournalAware.cs
[IRegionNavigationJournalEntry]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionNavigationJournalEntry.cs
[IRegionMemberLifetime]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionMemberLifetime.cs
[IViewsCollection]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IViewsCollection.cs
[IRegionAdapter]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionAdapter.cs
[IRegionNavigationService]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionNavigationService.cs
[IConfirmNavigationRequest]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IConfirmNavigationRequest.cs
[IRegionManagerAccessor]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionManagerAccessor.cs
[IRegionNavigationContentLoader]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionNavigationContentLoader.cs
[IRegionCollection]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionCollection.cs
[IRegionNavigationJournal]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/IRegionNavigationJournal.cs
[IHostAwareRegionBehavior]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/Behaviors/IHostAwareRegionBehavior.cs
[IModuleCatalogItem]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Modularity/IModuleCatalogItem.cs
[IAssemblyResolver]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Modularity/IAssemblyResolver.Desktop.cs
[IModuleManager]:https://github.com/PrismLibrary/Prism/blob/1d740d3c2cfc1464e1d8350ff8bbf0ccce3c5053/Source/Prism/Modularity/IModuleManager.cs
[IModuleTypeLoader]:https://github.com/PrismLibrary/Prism/blob/1d740d3c2cfc1464e1d8350ff8bbf0ccce3c5053/Source/Wpf/Prism.Wpf/Modularity/IModuleTypeLoader.cs
[IModuleGroupsCatalog]:https://github.com/PrismLibrary/Prism/blob/1d740d3c2cfc1464e1d8350ff8bbf0ccce3c5053/Source/Wpf/Prism.Wpf/Modularity/IModuleGroupsCatalog.cs
[IConfigurationStore]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Modularity/IConfigurationStore.Desktop.cs
[IModuleInitializer]:https://github.com/PrismLibrary/Prism/blob/bd496273bf68ac515474cc7b6ebbce69cff57ca6/Source/Prism/Modularity/IModuleInitializer.cs
[Imodule]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Modularity/IModule.cs
[IModuleInfo]:https://github.com/PrismLibrary/Prism/blob/bd496273bf68ac515474cc7b6ebbce69cff57ca6/Source/Prism/Modularity/IModuleInfo.cs
[IModuleInfoGroup]:https://github.com/PrismLibrary/Prism/blob/1d740d3c2cfc1464e1d8350ff8bbf0ccce3c5053/Source/Prism/Modularity/IModuleInfoGroup.cs
[IModuleCatalog]:https://github.com/PrismLibrary/Prism/blob/1d740d3c2cfc1464e1d8350ff8bbf0ccce3c5053/Source/Prism/Modularity/IModuleCatalog.cs
[IModuleExport]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Mef.Wpf/Modularity/IModuleExport.cs


[TraceLogger]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Logging/TraceLogger.cs
[TextLogger]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Logging/TextLogger.cs
[DebugLogger]:https://github.com/PrismLibrary/Prism/blob/e3ca35558e219ad14e42ccc72748b4f5f19a2486/Source/Prism/Logging/DebugLogger.cs
[EmptyLogger]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Logging/EmptyLogger.cs

[DelegateReference]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Events/DelegateReference.cs
[EventSubscription]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Events/EventSubscription.cs
[PrismApplicationBase]:https://github.com/PrismLibrary/Prism/blob/d4768773d11afff19bb1ad5a551a3165fa002640/Source/Wpf/Prism.Wpf/PrismApplicationBase.cs
[INavigationAware2]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Prism/Navigation/INavigationAware.cs
[RegionMemberLifetimeAttribute]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/RegionMemberLifetimeAttribute.cs
[RegionMemberLifetimeBehavior]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/Behaviors/RegionMemberLifetimeBehavior.cs
[RegionNavigationJournalEntry]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/RegionNavigationJournalEntry.cs
[DefaultRegionManagerAccessor]:https://github.com/PrismLibrary/Prism/blob/2ecbf13ed59b288d8d88446b535780bdc211b6e1/Source/Wpf/Prism.Wpf/Regions/DefaultRegionManagerAccessor.cs