config ではなくて、コードからコンストラクタインジェクションを指定する際のメモ
Registering Injected Parameter and Property Values では、値を直接指定する例は載ってたのですが パラメータ を Container から取る例が無かったのでメモ
using System; using Microsoft.Practices.Unity; class Program { static void Main(string[] args) { var container = new UnityContainer(); container.RegisterType<IHoge, Hoge>() .RegisterType<Data>(new InjectionConstructor(typeof(IHoge), 10)); var d = container.Resolve<Data>(); Console.WriteLine(d.Val); // 10 Console.WriteLine(d.Driver.Name); // Hoge Console.ReadKey(); } } public interface IHoge { string Name { get; } } public class Hoge : IHoge { string IHoge.Name { get { return "Hoge"; } } } public class Data { private readonly IHoge _driver; public IHoge Driver { get { return _driver; } } private readonly int _val; public int Val { get { return _val; } } public Data(IHoge hoge, int value) { _driver = hoge; _val = value; } }
typeof(〜) で その型を渡すといけそうでした。