今天第一次用ObjectBuilder来创建简单对象,发现方法确实很简单。
[TestMethod]
public void TestMethod1()
{
Builder builder = new Builder();
//Locator locator = new Locator();
//LifetimeContainer lContainer = new LifetimeContainer();
//locator.Add(typeof(LifetimeContainer), lContainer);
ConstructorPolicy conPolicy = new ConstructorPolicy();
//conPolicy.AddParameter(new ValueParameter<int>(3));
builder.Policies.Set<ICreationPolicy>(conPolicy, typeof(SimpleObject), null);
var o = builder.BuildUp<SimpleObject>(null, null, null);
Assert.AreEqual(-1, o.IniValue);
}
class SimpleObject
{
public readonly int IniValue = -2;
public SimpleObject(int value)
{
IniValue = value;
}
public SimpleObject()
{
IniValue = -1;
}
}
结果是-1
奇怪的是,如果我不设置ICreationPolicy,结果居然是0。还希望哪位高手指教一下。