private static IMemberInjection CreatePropertyInjection(IKernel kernel, PropertyInfo p, InjectManyAttribute manyAttr) { return(new PropertyInjection//字段注入元数据 { Member = p, Reinjection = manyAttr != null ? manyAttr.Reinjection : true, Setter = p.ToMemberSetter(),//通过Emit的方式进行注入, Dependency = DependencyManager.Get(null, p.PropertyType, kernel, true) }); }
private static IMemberInjection CreateFieldInjection(IKernel kernel, FieldInfo f, InjectManyAttribute manyAttr) { return(new FieldInjection//字段注入元数据 { Member = f, Reinjection = manyAttr != null ? manyAttr.Reinjection : true, Setter = f.ToMemberSetter(),//通过Emit的方式进行注入, Dependency = DependencyManager.Get(null, f.FieldType, kernel, true) }); }