テーマ オブジェクトを格納する「テーマ リポジトリ」があります。
Iテーマ
Public Interface ITheme
Property Name As String
Property Url As String
End Interface
IThemeRepository
Public Interface IThemeRepository
Property Themes As IList(Of ITheme)
Sub Add(theme As ITheme)
End Interface
アプリケーションのセットアップ中に、いくつかのテーマをリポジトリに追加したいと考えています。その後、何でもメモリ内データベースのようなものとしてリポジトリにアクセスできるようにしたいと考えています。これは、リポジトリがシングルトンのライフスタイルを持つ必要があることを意味します。次のコードでも、ThemeRepository の新しいインスタンスは常にインスタンス化されます。
リポジトリインストーラー
Public Class RepositoriesInstaller
Implements IWindsorInstaller
Public Sub Install(container As Castle.Windsor.IWindsorContainer,
store As Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore) _
Implements IWindsorInstaller.Install
container.Register(Classes.FromAssembly(Assemblies.Infrastructure) _
.BasedOn(Of IThemeRepository) _
.WithServiceDefaultInterfaces _
.LifestyleSingleton)
End Sub
End Class
テーマリポジトリ
Public Class ThemeRepository
Implements IThemeRepository
Public Sub New()
Themes = New List(Of ITheme)
End Sub
Public Sub Add(theme As ITheme) Implements IThemeRepository.Add
Themes.Add(theme)
End Sub
Public Property Themes As IList(Of ITheme) Implements IThemeRepository.Themes
End Class
ThemeRepository
サービスは常に正常に検出されますが、シングルトンではありません。の新しいインスタンスThemeRepository
は常に解決されます。IeNew()
は常に呼び出されThemeRepository
ます。どうしたの?
(回答では C# または VB.NET コードを使用できます)