| File: ITaskItem2.cs | Web Access |
| Project: src\msbuild\src\Framework\Microsoft.Build.Framework.csproj (Microsoft.Build.Framework) |
// 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.Collections; using System.Runtime.InteropServices; #nullable disable namespace Microsoft.Build.Framework { /// <summary> /// This interface adds escaping support to the ITaskItem interface. /// </summary> [ComVisible(true)] [Guid("ac6d5a59-f877-461b-88e3-b2f06fce0cb9")] public interface ITaskItem2 : ITaskItem { /// <summary> /// Gets or sets the item include value e.g. for disk-based items this would be the file path. /// </summary> /// <remarks> /// Taking the opportunity to fix the property name, although this doesn't /// make it obvious it's an improvement on ItemSpec. /// </remarks> string EvaluatedIncludeEscaped { get; set; } /// <summary> /// Allows the values of metadata on the item to be queried. /// </summary> /// <remarks> /// Taking the opportunity to fix the property name, although this doesn't /// make it obvious it's an improvement on GetMetadata. /// </remarks> string GetMetadataValueEscaped(string metadataName); /// <summary> /// Allows a piece of custom metadata to be set on the item. Assumes that the value passed /// in is unescaped, and escapes the value as necessary in order to maintain its value. /// </summary> /// <remarks> /// Taking the opportunity to fix the property name, although this doesn't /// make it obvious it's an improvement on SetMetadata. /// </remarks> void SetMetadataValueLiteral(string metadataName, string metadataValue); /// <summary> /// ITaskItem2 implementation which returns a clone of the metadata on this object. /// Values returned are in their original escaped form. /// </summary> /// <returns>The cloned metadata, with values' escaping preserved.</returns> IDictionary CloneCustomMetadataEscaped(); } }