过去,我使用原始的反射类并设置为静态字段,如下
public class ServiceHelper{
private static IFoo _iFoo=null;
public static IFoo Foo{
get{
if(_iFoo==null)
{
_iFoo=Activator.CreateInstance("assembly") as IFoo;
}
return _iFoo;
}
}
}
现在我们正在使用 Ninject
kernel.Bind(x => x.FromAssembliesInPath("assembilypath")
.SelectAllClasses()
.BindDefaultInterface().Configure(binding => binding.InSingletonScope()));
问题:
这两种方法是一样的吗?
Ninject 只会加载一次程序集吗?
如果更改程序集,是否可以检测到 ninject 并重新加载新程序集?