internal static EventSourceElement Read(XElement element)
        {
            var instance = new EventSourceElement()
            {
                Name            = (string)element.Attribute(NameAttributeKey),
                EventId         = (Guid?)element.Attribute(EventIdAttributeKey) ?? Guid.Empty,
                Level           = (EventLevel)Enum.Parse(typeof(EventLevel), (string)element.Attribute(LevelAttributeKey) ?? default(EventLevel).ToString()),
                MatchAnyKeyword = (EventKeywords)long.Parse((string)element.Attribute(MatchAnyKeywordAttributeKey) ?? ((long)default(EventKeywords)).ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)
            };

            return(instance);
        }
        private IEnumerable <EventSourceElement> ReadEventSources(XElement element)
        {
            List <EventSourceElement> sources = new List <EventSourceElement>();

            foreach (var eventSource in element.Elements(this.sourcesName).Elements(this.eventSourceName))
            {
                sources.Add(EventSourceElement.Read(eventSource));
            }

            if (sources.Count == 0)
            {
                throw new ConfigurationException(string.Format(CultureInfo.CurrentCulture, Properties.Resources.NoEventSourcesError, element.Name.LocalName));
            }

            return(sources);
        }