0
爲什麼IContainer.IsRegistered(Type serviceType)添加註冊?爲什麼IContainer.IsRegistered(Type serviceType)添加註冊?
Type serviceType = typeof (string[]);
int rc = container.ComponentRegistry.Registrations.Count();
container.IsRegistered(serviceType);
int rc2 = container.ComponentRegistry.Registrations.Count();
Assert.AreEqual(rc, rc2);
所提到的行爲可能使下面的副作用:
public class Test
{
public Entity[] Entities { get; set; }
}
//...
var bldr = new ContainerBuilder();
bldr.RegisterModule<ArraysInjectionGuardModule>();
var container = bldr.Build();
var t = new Test();
container.InjectProperties(t);
Assert.IsNull(t.Entities);
由於container.InjectProperties(...);
調用container.IsRegistered(..)
並將typeof(Entity[])
作爲參數,t.Entities與空數組初始化。 當我發現這種行爲時,我有點困惑。