public void BuildUp(IAttributedBuilder builder) { ((DirectorAttribute[]) builder.GetType().GetCustomAttributes(typeof(DirectorAttribute), false)) .OrderByDescending(x => x.Priority) .ToList <DirectorAttribute>() .ForEach(x => InvokeBuildPartMethod(builder, x)); }
public void BuildUp(IAttributedBuilder builder) { var attributes = builder.GetType().GetCustomAttributes(typeof(DirectorAttribute), false) as DirectorAttribute[]; if (attributes == null) { return; } attributes.OrderByDescending(x => x.Priority) .ToList() .ForEach(x => InvokeBuildPartMethod(builder, x)); }
public void BuildUp(IAttributedBuilder builder) { var attributes = builder.GetType().GetCustomAttributes(typeof(DirecotrAttribute), false); if (attributes.Length <= 0) { return; } var directors = attributes.Select(a => a as DirecotrAttribute).OrderBy(x => x.Priority); foreach (var direcotrAttribute in directors) { InvokBuildPartMethod(builder, direcotrAttribute); } }
public void BuildUp(IAttributedBuilder builder) { // 获取 Builder 的 DirectorAttribute 属性 object[] attributes = builder.GetType().GetCustomAttributes(typeof(DirectorAttribute), false); if (attributes.Length <= 0) { return; } DirectorAttribute[] directors = new DirectorAttribute[attributes.Length]; for (int i = 0; i < attributes.Length; i++) { directors[i] = (DirectorAttribute)attributes[i]; } // 按每个 DirectorAttribute 优先级逆序排序后,逐个执行 Array.Sort <DirectorAttribute>(directors); foreach (DirectorAttribute attribute in directors) { InvokeBuildPartMethod(builder, attribute); } }