instance=outer
Seasar.NETによるインスタンス管理ですが、outerの使い方を今頃知りました。コンテナの外側で生成したオブジェクトをGetComponentで取得出来るものなの?とか疑問だったんですが、InjectDependencyメソッドを使うんですね。(^^;
diconファイル。
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components21.dtd"> <components> <component class="ClassLibrary.Person" instance="outer"> <property name="Name">"Taro"</property> <property name="Age">20</property> </component> </components>
使い方。
using MbUnit.Framework; using Seasar.Extension.Unit; namespace ClassLibrary { public class Person { private int age; private string name; public string Name { get { return name; } set { name = value; } } public int Age { get { return age; } set { age = value; } } } [TestFixture] public class ClassTest : S2TestCase { [Test, S2] public void Test() { Person p = new Person(); // インスタンス管理はouter Container.InjectDependency (p); Assert.AreEqual ("Taro", p.Name); Assert.AreEqual (20, p.Age); } } }