Mini容器学習ノート3——コンポーネントの登録(基礎編)
9827 ワード
Miniコンテナは主に2つのインタフェースを実現し,1つはサービスレジストリインタフェース,1つはサービスロケータインタフェースである.では、コンポーネントの登録はサービスレジストリインタフェースIServiceRegistryに依存します.
IServiceRegistryインタフェースの定義:
IServiceRegistryの拡張方法:
Mini容器公式サイト:
http://nlite.codeplex.com/
推奨リソース:
Mini容器の紹介
Miniコンテナ学習ディレクトリ
Miniコンテナ学習ディレクトリ1——環境構築(基礎編)
Miniコンテナ学習ノート2——コンポーネントメタデータ(基礎編)
Mini容器学習ノート3——コンポーネントの登録(基礎編)
Miniコンテナ学習ノート4-コンポーネントのライフサイクル(応用編)
Miniコンテナ学習ノート5-コンポーネントの取得
Miniコンテナ学習ノート6-コンポーネントの取得(応用)
Mini容器学習ノート7——構造関数注入
Miniコンテナ学習ノート8-フィールド注入
Mini容器学習ノート9——属性注入
Mini容器学習ノート10——方法注入
Mini容器学習ノート11——Lazy注入
Mini容器学習ノート12——組み合わせ例
Mini容器学習ノート13-プラグイン注入
Mini容器学習ノート14——異常処理
Miniコンテナ学習ノート15-Listener-Listenerの初期化
Miniコンテナ学習ノート16-リスナー-リスナーを解放
Miniコンテナ学習ノート17-Listener-Listenerの起動/停止
Mini容器学習ノート18——リスナー-OPリスナー
IServiceRegistryインタフェースの定義:
public interface IServiceRegistry
{
IServiceRegistry Register(IComponentInfo info);//
IServiceRegistry RegisterInstance(string id, object instance);//
IServiceRegistry RegisterInstance(string id, Type contract, object instance);//
bool HasRegister(Type contract);//
bool HasRegister(string id);// Id
void UnRegister(string id);// Id
void UnRegister(Type contract);//
IServiceRegistry Compose(object componentInstance);//
}
IServiceRegistryの拡張方法:
static IServiceRegistry RegisterInstance<TContract, TComponent>(this IServiceRegistry registry, string id, TComponent instance) where TComponent : TContract
static IServiceRegistry RegisterInstance<TContract, TComponent>(this IServiceRegistry registry, TComponent instance) where TComponent : TContract
static IServiceRegistry RegisterInstance(this IServiceRegistry registry, object instance)
static IServiceRegistry Register<TComponent>(this IServiceRegistry registry)
static IServiceRegistry Register<TComponent>(this IServiceRegistry registry, string id)
static IServiceRegistry Register(this IServiceRegistry registry, Type contract, Type component)
static IServiceRegistry Register<TContract, TComponent>(this IServiceRegistry registry, string id, LifestyleFlags lifestyle) where TComponent : TContract
static IServiceRegistry Register<TContract, TComponent>(this IServiceRegistry registry) where TComponent : TContract
static IServiceRegistry Register<TContract, TComponent>(this IServiceRegistry registry, string id) where TComponent : TContract
static IServiceRegistry Register(this IServiceRegistry registry, Type component)
static IServiceRegistry Register(this IServiceRegistry registry, string id, Type component)
static IServiceRegistry Register(this IServiceRegistry registry, string id, Type contract, Type component)
static IServiceRegistry Register<TContract>(this IServiceRegistry registry, Func<object> creator)
static IServiceRegistry Register<TContract>(this IServiceRegistry registry, string id, Func<object> creator)
static IServiceRegistry RegisteryFromAssemblyOf<T>(this IServiceRegistry registry)
Mini , Mini Api。
ServiceRegistry:
public static class ServiceRegistry
{
public static IServiceRegistry Current{ get; }
public static IServiceRegistry Register<TComponent>()
public static IServiceRegistry Register<TComponent>(string id)
public static IServiceRegistry RegisteryFromAssemblyOf<T>()
public static IServiceRegistry Register(params Action<IBindingExpression>[] handlers)// API
public static IServiceRegistry Register(params Action<IComponentExpression>[] handlers))// API
public static bool HasRegister<TContract>()
public static bool HasRegister(Type service)
public static bool HasRegister(string id)
public static IServiceRegistry Compose(object component)
}
Mini容器公式サイト:
http://nlite.codeplex.com/
推奨リソース:
Mini容器の紹介
Miniコンテナ学習ディレクトリ
Miniコンテナ学習ディレクトリ1——環境構築(基礎編)
Miniコンテナ学習ノート2——コンポーネントメタデータ(基礎編)
Mini容器学習ノート3——コンポーネントの登録(基礎編)
Miniコンテナ学習ノート4-コンポーネントのライフサイクル(応用編)
Miniコンテナ学習ノート5-コンポーネントの取得
Miniコンテナ学習ノート6-コンポーネントの取得(応用)
Mini容器学習ノート7——構造関数注入
Miniコンテナ学習ノート8-フィールド注入
Mini容器学習ノート9——属性注入
Mini容器学習ノート10——方法注入
Mini容器学習ノート11——Lazy注入
Mini容器学習ノート12——組み合わせ例
Mini容器学習ノート13-プラグイン注入
Mini容器学習ノート14——異常処理
Miniコンテナ学習ノート15-Listener-Listenerの初期化
Miniコンテナ学習ノート16-リスナー-リスナーを解放
Miniコンテナ学習ノート17-Listener-Listenerの起動/停止
Mini容器学習ノート18——リスナー-OPリスナー