/// <summary> /// 実装クラスからインスタンスを生成して返却する。 /// </summary> /// <typeparam name="T">インスタンス型</typeparam> /// <returns></returns> /// <exception cref="NotImplementedException">登録されていない型を指定した場合</exception> public static T Resolve <T>(string key = "default") { // コンテナ取得 if (!ContainerDic.ContainsKey(key)) { throw new ContainerNotRegistrationException(); } var container = ContainerDic.First(kv => kv.Key.Equals(key)).Value; // インスタンス生成情報取得 if (!container.ContainsKey(typeof(T))) { throw new ContainerNotRegistrationException(); } var createInfo = container.First(kv => kv.Key == typeof(T)).Value; return((T)createInfo.GetInstance()); }