| File: Definition\ToolsetPropertyDefinition.cs | Web Access |
| Project: src\msbuild\src\Build\Microsoft.Build.csproj (Microsoft.Build) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Diagnostics; using Microsoft.Build.Shared; namespace Microsoft.Build.Evaluation { /// <summary> /// A class representing a property. Used internally by the toolset readers. /// </summary> [DebuggerDisplay("Name={Name} Value={Value}")] internal class ToolsetPropertyDefinition { /// <summary> /// The property name /// </summary> private string _name; /// <summary> /// The property value /// </summary> private string _value; /// <summary> /// The property source /// </summary> private IElementLocation _source; /// <summary> /// Creates a new property /// </summary> /// <param name="name">The property name</param> /// <param name="value">The property value</param> /// <param name="source">The property source</param> public ToolsetPropertyDefinition(string name, string value, IElementLocation source) { ArgumentException.ThrowIfNullOrEmpty(name); ArgumentNullException.ThrowIfNull(source); // value can be the empty string but not null ArgumentNullException.ThrowIfNull(value); _name = name; _value = value; _source = source; } /// <summary> /// The name of the property /// </summary> public string Name { get { return _name; } } /// <summary> /// The value of the property /// </summary> public string Value { get { return _value; } set { Assumed.NotNull(value, valueExpression: "Value"); _value = value; } } /// <summary> /// A description of the location where the property was defined, /// such as a registry key path or a path to a config file and /// line number. /// </summary> public IElementLocation Source { get { return _source; } } } }