コード例 #1
0
        internal static TaskParameterEventArgs CreateTaskParameterEventArgs(
            BuildEventContext buildEventContext,
            TaskParameterMessageKind messageKind,
            string itemType,
            IList items,
            bool logItemMetadata,
            DateTime timestamp,
            int line   = 0,
            int column = 0)
        {
            // Only create a snapshot of items if we use AppDomains
#if FEATURE_APPDOMAIN
            CreateItemsSnapshot(ref items);
#endif

            var args = new TaskParameterEventArgs(
                messageKind,
                itemType,
                items,
                logItemMetadata,
                timestamp);
            args.BuildEventContext = buildEventContext;
            args.LineNumber        = line;
            args.ColumnNumber      = column;
            return(args);
        }
コード例 #2
0
        internal static TaskParameterEventArgs CreateTaskParameterEventArgs(
            BuildEventContext buildEventContext,
            TaskParameterMessageKind messageKind,
            string itemType,
            IList items,
            bool logItemMetadata,
            DateTime timestamp,
            int line,
            int column)
        {
            var args = new TaskParameterEventArgs(
                messageKind,
                itemType,
                items,
                logItemMetadata,
                timestamp);

            args.BuildEventContext = buildEventContext;

            // sigh this is terrible for perf
            LineNumberField.SetValue(args, line);
            ColumnNumberField.SetValue(args, column);

            // Should probably make these public
            // args.LineNumber = line;
            // args.ColumnNumber = column;
            return(args);
        }
コード例 #3
0
 /// <summary>
 /// Creates an instance of this class for the given task parameter.
 /// </summary>
 public TaskParameterEventArgs
 (
     TaskParameterMessageKind kind,
     string itemType,
     IList items,
     bool logItemMetadata,
     DateTime eventTimestamp,
     int line,
     int column
 )
     : base(
         subcategory: null,
         code: null,
         file: null,
         lineNumber: line,
         columnNumber: column,
         endLineNumber: 0,
         endColumnNumber: 0,
         message: null,
         helpKeyword: null,
         senderName: null,
         MessageImportance.Low,
         eventTimestamp)
 {
     Kind            = kind;
     ItemType        = itemType;
     Items           = items;
     LogItemMetadata = logItemMetadata;
 }
コード例 #4
0
 /// <summary>
 /// Creates an instance of this class for the given task parameter.
 /// </summary>
 public TaskParameterEventArgs
 (
     TaskParameterMessageKind kind,
     string itemType,
     IList items,
     bool logItemMetadata,
     DateTime eventTimestamp
 )
     : base(null, null, null, MessageImportance.Low, eventTimestamp)
 {
     Kind            = kind;
     ItemType        = itemType;
     Items           = items;
     LogItemMetadata = logItemMetadata;
 }
コード例 #5
0
        internal static void LogTaskParameter(
            LoggingContext loggingContext,
            TaskParameterMessageKind messageKind,
            string itemType,
            IList items,
            bool logItemMetadata)
        {
            var args = CreateTaskParameterEventArgs(
                loggingContext.BuildEventContext,
                messageKind,
                itemType,
                items,
                logItemMetadata,
                DateTime.UtcNow);

            loggingContext.LogBuildEvent(args);
        }
コード例 #6
0
 /// <summary>
 /// Creates an instance of this class for the given task parameter.
 /// </summary>
 public TaskParameterEventArgs
 (
     TaskParameterMessageKind kind,
     string itemName,
     IList items,
     bool logItemMetadata,
     DateTime eventTimestamp,
     Func <TaskParameterEventArgs, string> messageGetter
 )
     : base("", null, "", MessageImportance.Low, eventTimestamp)
 {
     Kind               = kind;
     ItemName           = itemName;
     Items              = items;
     LogItemMetadata    = logItemMetadata;
     this.messageGetter = messageGetter;
 }
コード例 #7
0
        internal static TaskParameterEventArgs CreateTaskParameterEventArgs(
            BuildEventContext buildEventContext,
            TaskParameterMessageKind messageKind,
            string itemType,
            IList items,
            bool logItemMetadata,
            DateTime timestamp)
        {
            var args = new TaskParameterEventArgs(
                messageKind,
                itemType,
                items,
                logItemMetadata,
                timestamp);

            args.BuildEventContext = buildEventContext;
            return(args);
        }
コード例 #8
0
        internal static string GetTaskParameterText(TaskParameterMessageKind messageKind, string itemType, IList items, bool logItemMetadata)
        {
            var resourceText = messageKind switch
            {
                TaskParameterMessageKind.AddItem => ItemGroupIncludeLogMessagePrefix,
                TaskParameterMessageKind.RemoveItem => ItemGroupRemoveLogMessage,
                TaskParameterMessageKind.TaskInput => TaskParameterPrefix,
                TaskParameterMessageKind.TaskOutput => OutputItemParameterMessagePrefix,
                _ => throw new NotImplementedException($"Unsupported {nameof(TaskParameterMessageKind)} value: {messageKind}")
            };

            var itemGroupText = GetParameterText(
                resourceText,
                itemType,
                items,
                logItemMetadata);

            return(itemGroupText);
        }
    }
コード例 #9
0
        internal static void LogTaskParameter(
            LoggingContext loggingContext,
            TaskParameterMessageKind messageKind,
            string itemType,
            IList items,
            bool logItemMetadata,
            IElementLocation location = null)
        {
            var args = CreateTaskParameterEventArgs(
                loggingContext.BuildEventContext,
                messageKind,
                itemType,
                items,
                logItemMetadata,
                DateTime.UtcNow,
                location?.Line ?? 0,
                location?.Column ?? 0);

            loggingContext.LogBuildEvent(args);
        }