/// <summary>
        /// 加载配置
        /// </summary>
        /// <param name="config"></param>
        /// <exception cref="InvalidOperationException">配置已经被加载</exception>
        /// <exception cref="ArgumentNullException">参数<c>config</c> 不能为空</exception>
		public void LoadConfig(FormatterConfig config)
		{
			if (config == null)
				throw new ArgumentNullException("config");
			Name = config.Name;
			FormatString = config.Format;
		}
Beispiel #2
0
        //解析formatters节点
        private void ParseFormatters(XmlNodeList nodes)
        {
            foreach (XmlNode node in nodes)
            {
                if (node is XmlComment) continue;

                var config = new FormatterConfig
                {
                    Name = GetAttribute(node, "name", true),
                    Format = GetAttribute(node,"format", false)
                };

                string typeName = GetAttribute(node, "type", true);
                if (!typeName.Contains("."))
                    typeName = "Kalman.Logging." + typeName;

                config.Type = Type.GetType(typeName, false);
                if (config.Type == null)
                    throw new ConfigurationErrorsException(string.Format("找不到类型名称为{0}的格式化器",typeName));

                config.ChildConfig = node.ChildNodes;
                _Formatters.Add(config);
            }
        }