/// <summary> /// 获取组件顶层的所有特征 /// </summary> /// <param name="comp"></param> /// <returns></returns> public static IEnumerable <IFeature> GetCompTopFeatures(this IComponent2 comp) { var feat = comp.FirstFeature(); while (feat != null) { yield return(feat); feat = feat.GetNextFeature() as Feature; } }
/// <summary> /// 获取特定的特征 /// </summary> /// <param name="comp"></param> /// <param name="func"></param> /// <returns></returns> public static IList <Feature> TakeCompTopFeaturesWhile(this IComponent2 comp, Func <Feature, bool> func) { List <Feature> features = new List <Feature>(); var feat = comp.FirstFeature(); while (feat != null) { if (func != null && func(feat)) { features.Add(feat); } feat = feat.GetNextFeature() as Feature; } return(features); }
/// <summary> /// 用类型名过滤特征--只获取第一级特征 /// </summary> /// <param name="comp"></param> /// <param name="TypeName"></param> /// <returns></returns> public static IList <Feature> GetCompTopFeaturesWithTypeName(this IComponent2 comp, string TypeName) { List <Feature> features = new List <Feature>(); var feat = comp.FirstFeature(); while (feat != null) { if (feat.GetTypeName2() == TypeName) { features.Add(feat); } feat = feat.GetNextFeature() as Feature; } return(features); }