| File: BuildCheck\OM\PropertyReadData.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 Microsoft.Build.Evaluation; using Microsoft.Build.Experimental.BuildCheck.Infrastructure; using Microsoft.Build.Shared; namespace Microsoft.Build.Experimental.BuildCheck; /// <summary> /// Information about property being accessed - whether during evaluation or build. /// </summary> internal class PropertyReadData( string projectFilePath, int? projectConfigurationId, string propertyName, IMSBuildElementLocation elementLocation, bool isUninitialized, PropertyReadContext propertyReadContext) : CheckData(projectFilePath, projectConfigurationId) { public PropertyReadData( string projectFilePath, int? projectConfigurationId, PropertyReadInfo propertyReadInfo) : this(projectFilePath, projectConfigurationId, propertyReadInfo.PropertyName.Substring(propertyReadInfo.StartIndex, propertyReadInfo.EndIndex - propertyReadInfo.StartIndex + 1), propertyReadInfo.ElementLocation, propertyReadInfo.IsUninitialized, propertyReadInfo.PropertyReadContext) { } /// <summary> /// Name of the property that was accessed. /// </summary> public string PropertyName { get; } = propertyName; /// <summary> /// Location of the property access. /// </summary> public IMSBuildElementLocation ElementLocation { get; } = elementLocation; /// <summary> /// Indicates whether the property was accessed before being initialized. /// </summary> public bool IsUninitialized { get; } = isUninitialized; /// <summary> /// Gets the context type in which the property was accessed. /// </summary> public PropertyReadContext PropertyReadContext { get; } = propertyReadContext; }