Ejemplo n.º 1
0
        /// <summary>
        /// 指定したパスの SettingKey を取得します
        /// </summary>
        /// <param name="names">パスの [それぞれの階層の名前を表す文字列] の配列を指定します。
        /// クラスを指定する際には "&lt;" と "&gt;" で囲んで名前の前に指定します</param>
        /// <param name="index">次に検索する名前</param>
        /// <returns>パスによって指定される SettingKey を返します。
        /// 既存でない場合は新しく作成して返します。</returns>
        private SettingKey GetKey(string[] names, int index)
        {
            string cls  = DEFAULT_CLASS;
            string name = names[index];

            if (name.StartsWith("<"))
            {
                int i = name.IndexOf(">");
                if (i > 0)
                {
                    cls  = name.Substring(1, i - 1);
                    name = name.Substring(i + 1);
                }
            }
            SettingKey r = this[cls, name];

            if (++index == names.Length)
            {
                return(r);
            }
            return(r.GetKey(names, index));
        }