// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. namespace WixToolset.Data { using System; using System.Resources; /// /// Event args for message events. /// public class Message { /// /// Creates a new Message using a format string. /// /// Source line numbers for the message. /// Message level. /// Id for the message. /// Format . /// Arguments for the format string. public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, string format, params object[] messageArgs) { this.SourceLineNumbers = sourceLineNumbers; this.Level = level; this.Id = id; this.ResourceNameOrFormat = format; this.MessageArgs = messageArgs; } /// /// Creates a new Message using a format string from a resource manager. /// /// Source line numbers for the message. /// Message level. /// Id for the message. /// Resource manager. /// Name of the resource. /// Arguments for the format string. public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, ResourceManager resourceManager, string resourceName, params object[] messageArgs) { this.SourceLineNumbers = sourceLineNumbers; this.Level = level; this.Id = id; this.ResourceManager = resourceManager; this.ResourceNameOrFormat = resourceName; this.MessageArgs = messageArgs; } /// /// Gets the source line numbers. /// /// The source line numbers. public SourceLineNumber SourceLineNumbers { get; } /// /// Gets the Id for the message. /// /// The Id for the message. public int Id { get; } /// /// Gets the resource manager for this event args. /// /// The resource manager for this event args. public ResourceManager ResourceManager { get; } /// /// Gets the name of the resource or format string if no resource manager was provided. /// /// The name of the resource or format string. public string ResourceNameOrFormat { get; } /// /// Gets or sets the for the message. /// /// The for the message. public MessageLevel Level { get; private set; } /// /// Gets the arguments for the format string. /// /// The arguments for the format string. public object[] MessageArgs { get; } public override string ToString() { if (this.ResourceManager == null) { return String.Format(this.ResourceNameOrFormat, this.MessageArgs); } else { return String.Format(this.ResourceManager.GetString(this.ResourceNameOrFormat), this.MessageArgs); } } } }