0

辞書を保持する静的クラスと、それにアクセスするための 2 つの get メソッドがあります。

これが私のクラスです:


public static class ConfiguraCuadros
    {    
    public static Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,string>>>> GetDictionary()
       {
           // Try to get the result in the static Dictionary
           return _configcuadros;
       }

       public static Dictionary<string, Dictionary<string, Dictionary<string, string>>> GetHoja(string key)
       {
           // Try to get the result in the static Dictionary
           Dictionary<string, Dictionary<string, Dictionary<string, string>>> result = new Dictionary<string, Dictionary<string, Dictionary<string, string>>>();
           if (_configcuadros.TryGetValue(key, out result))
           {
               return result;
           }
           else
           {
               return null;
           }
       }

    public static readonly Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, string>>>> _configcuadros = new Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, string>>>> 
    {

     {   "Formato01",   //this is just a hint, the dictionary is much more extensive
                new Dictionary<string, Dictionary<string, Dictionary<string, string>>> 
                {
                    {
                        "F01C01A",      
                        new Dictionary<string, Dictionary<string, string>> 
                        {
                            {
                                "X",
                                new Dictionary<string, string>
                                {
                                    { "key1" , "value1" },
                                    { "key2" , "value2" },
                                    { "key3" , "value3" },
                                }
                            },
                        }
                    },

                }

            },
        }
    }`

ゲッターメソッドを使うと、

ConfiguraCuadros.GetDictionary();

例外がスローされます。

タイプ 'System.ArgumentException' の初回例外が mscorlib.dll で発生しました
「ConfiguraCuadros.GetDictionary()」がタイプ「System.TypeInitializationException」の例外をスローしました
    base: {"'beDGRAIC.ConfiguraCuadros' の型初期化子が例外をスローしました。"}
    TypeName: "beDGRAIC.ConfiguraCuadros"

また

「ConfiguraCuadros.GetHoja("Formato01")」が「System.TypeInitializationException」タイプの例外をスローしました
    base: {"'beDGRAIC.ConfiguraCuadros' の型初期化子が例外をスローしました。"}
    TypeName: "beDGRAIC.ConfiguraCuadros"

ご覧のとおり、私の意図は静的辞書を持つことです。問題は辞書の宣言にあると思います...しかし、どこにあるのかわかりません...

念のため、「beDGRAIC」は私の名前空間です。

ご協力いただきありがとうございます!

4

1 に答える 1