/// <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; }
//解析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); } }