1.关于依赖注入属性:
在实例类里面写一个属性,在Autofac注册器里面进行注册后,可直接使用。具体用法如下:
//Autofac 注册器注册类(大多写法为接口)
private void RegistedProductPackingModule()
{
Builder.RegisterType<HwAsnLabelManager>().PropertiesAutowired();
Builder.RegisterType<HwAsnLabelDataImportManager>().PropertiesAutowired();
}
在实例类里这样写就可以了:
public class HwAsnLabelManager
{
#region property
//private HwAsnLabelDataImportManager dataimportor;
public HwAsnLabelDataImportManager DataImportor { get; set; }
#endregion
}
此时的DataImportor是不需要赋值就可以使用了。因为上面已经通过依赖注入容器进行注入过了。
但是如果是静态类的静态属性这样写就没有效果了。
静态类的依赖注入属性,需要进行实例创建了。可以这样写:
public static class PackingService
{
public static HwAsnLabelManager AsnLabelManager
{
get
{
return MesIocRegister.CreateInstance<HwAsnLabelManager>(() => { return MesIocRegister.IocContainer.Resolve<HwAsnLabelManager>(); });
}
}
}
这里之所以要用到静态类,是要用服务模式的方式进行类的管理。所以需要这样写就可以了。