在Microsoft.Practices.ObjectBuilder2中的StagedStrategyChain<TStageEnum>类中只用的下面的方法来获取枚举里元素的个数:
1: private static int NumberOfEnumValues()
2: {
3: return typeof(TStageEnum).GetFields(BindingFlags.Public | BindingFlags.Static).Length;
4: }
使用方式:
1: readonly List<IBuilderStrategy>[] stages;
2:
3: /// <summary>
4: /// Initialize a new instance of the <see cref="StagedStrategyChain{TStageEnum}"/> class.
5: /// </summary>
6: public StagedStrategyChain()
7: {
8: stages = new List<IBuilderStrategy>[NumberOfEnumValues()];
9:
10: for(int i = 0; i < stages.Length; ++i)
11: {
12: stages[i] = new List<IBuilderStrategy>();
13: }
14: }