Source/Tx.Windows/Configuration/ManifestEventAttribute.cs (84 lines of code) (raw):

// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. using System; using System.Globalization; using System.Text; namespace Tx.Windows { [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public sealed class ManifestEventAttribute : Attribute { private readonly string _channel; private readonly uint _eventId; private readonly string[] _keywords; private readonly string _level; private readonly string _opcode; private readonly Guid _providerGuid; private readonly byte _version; public ManifestEventAttribute(string providerGuid, uint eventId, byte version) { _providerGuid = new Guid(providerGuid); _eventId = eventId; _version = version; } public ManifestEventAttribute(string providerGuid, uint eventId, byte version, string opcode, string level, string channel, params string[] keywords) { _providerGuid = new Guid(providerGuid); _eventId = eventId; _version = version; _opcode = opcode; _level = level; _channel = channel; _keywords = keywords; } public Guid ProviderGuid { get { return _providerGuid; } } public uint EventId { get { return _eventId; } } public string Opcode { get { return _opcode; } } public byte Version { get { return _version; } } public string Level { get { return _level; } } public string Channel { get { return _channel; } } public string[] Keywords { get { return _keywords; } } public override string ToString() { var sb = new StringBuilder(); sb.Append("EventId: "); sb.AppendLine(_eventId.ToString(CultureInfo.InvariantCulture)); sb.Append("Opcode: "); sb.AppendLine(_opcode); sb.Append("Version: "); sb.AppendLine(_version.ToString(CultureInfo.InvariantCulture)); sb.Append("Level: "); sb.AppendLine(_level); sb.Append("Channel: "); sb.AppendLine(_channel); sb.AppendLine("Keywords: "); foreach (string keyword in _keywords) { sb.Append(" "); sb.AppendLine(keyword); } return sb.ToString(); } } }