FastEnum icon indicating copy to clipboard operation
FastEnum copied to clipboard

bug: TypeInitializationException

Open flier268 opened this issue 1 year ago • 0 comments

FastEnum: 1.8.0 .Net Framework 4.7.2 .NET version: latest

 public enum ErpMethod
    {
        [EnumMember(Value = "A. ")]
        A,
        [EnumMember(Value = "B. ")]
        B,
        
        [EnumMember(Value = "C. ")]
        C,
        
        [EnumMember(Value = "D. ")]
        D
    }
public class AController: Controller
    {

        public AController()
        {
            _service = service;


            #region 填入ErpMethod

            ViewBag.ErpMethod = FastEnum.GetValues<ErpMethod>()
                .Select(cm => new
                {
                    ID = FastEnum.GetName(cm),  // throw exception
                    Name = cm.GetEnumMemberValue() // throw exception
                }).ToArray();
            ;

            #endregion
        }
System.TypeInitializationException: 'Cache_UnderlyingOperation`1' 的類型初始設定式發生例外狀況。 ---> System.TypeInitializationException: 'Cache_Members`1' 的類型初始設定式發生例外狀況。 ---> System.ArgumentException: Key was already exists. Key:0
   於 FastEnumUtility.Internals.FrozenInt32KeyDictionary`1.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 valueSelector)
   於 FastEnumUtility.Internals.EnumerableExtensions.ToFrozenInt32KeyDictionary[TSource,TValue](IEnumerable`1 source, Func`2 keySelector, Func`2 valueSelector)
   於 FastEnumUtility.Member`1..ctor(String name)
   於 FastEnumUtility.FastEnum.Cache_Members`1.<>c.<.cctor>b__1_0(String x)
   於 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   於 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   於 System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   於 FastEnumUtility.Internals.ReadOnlyArrayExtensions.ToReadOnlyArray[T](IEnumerable`1 source)
   於 FastEnumUtility.FastEnum.Cache_Members`1..cctor()
   --- 內部例外狀況堆疊追蹤的結尾 ---
   於 FastEnumUtility.FastEnum.Cache_UnderlyingOperation`1..cctor()
   --- 內部例外狀況堆疊追蹤的結尾 ---
   於 FastEnumUtility.FastEnum.GetMember[T](T value)
   於 FastEnumUtility.FastEnumExtensions.ToMember[T](T value)
   於 FastEnumUtility.FastEnumExtensions.GetEnumMemberValue[T](T value, Boolean throwIfNotFound)
   於 New_TERS_.Controllers.SoftServiceProjectManagerController.<>c.<.ctor>b__1_2(ErpMethod cm) 於 D:\repos\TERS2\New_TERS_\Controllers\SoftServiceProjectManagerController.cs: 行 38
   於 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   於 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   於 System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   於 New_TERS_.Controllers.SoftServiceProjectManagerController..ctor(ISoftServiceProjectManagerService service) 於 D:\repos\A\Controllers\AController.cs: 行 37

flier268 avatar Jan 11 '24 10:01 flier268