internal TraceLoggingEventTypes(string name, EventTags tags, ParameterInfo[] paramInfos)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            this.typeInfos = this.MakeArray(paramInfos);
            this.name      = name;
            this.tags      = tags;
            this.level     = (byte)5;
            TraceLoggingMetadataCollector collector = new TraceLoggingMetadataCollector();

            for (int index = 0; index < this.typeInfos.Length; ++index)
            {
                TraceLoggingTypeInfo traceLoggingTypeInfo = this.typeInfos[index];
                this.level    = Statics.Combine((int)traceLoggingTypeInfo.Level, this.level);
                this.opcode   = Statics.Combine((int)traceLoggingTypeInfo.Opcode, this.opcode);
                this.keywords = this.keywords | traceLoggingTypeInfo.Keywords;
                string name1 = paramInfos[index].Name;
                if (Statics.ShouldOverrideFieldName(name1))
                {
                    name1 = traceLoggingTypeInfo.Name;
                }
                traceLoggingTypeInfo.WriteMetadata(collector, name1, EventFieldFormat.Default);
            }
            this.typeMetadata = collector.GetMetadata();
            this.scratchSize  = collector.ScratchSize;
            this.dataCount    = collector.DataCount;
            this.pinCount     = collector.PinCount;
        }
Beispiel #2
0
        internal TraceLoggingEventTypes(
            string name,
            EventTags tags,
            System.Reflection.ParameterInfo[] paramInfos)
        {
            if (name is null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            this.typeInfos = MakeArray(paramInfos);
#if FEATURE_PERFTRACING
            this.paramNames = MakeParamNameArray(paramInfos);
#endif
            this.name  = name;
            this.tags  = tags;
            this.level = Statics.DefaultLevel;

            var collector = new TraceLoggingMetadataCollector();
            for (int i = 0; i < typeInfos.Length; ++i)
            {
                TraceLoggingTypeInfo typeInfo = typeInfos[i];
                this.level     = Statics.Combine((int)typeInfo.Level, this.level);
                this.opcode    = Statics.Combine((int)typeInfo.Opcode, this.opcode);
                this.keywords |= typeInfo.Keywords;
                string?paramName = paramInfos[i].Name;
                if (Statics.ShouldOverrideFieldName(paramName !))
                {
                    paramName = typeInfo.Name;
                }
                typeInfo.WriteMetadata(collector, paramName, EventFieldFormat.Default);
            }

            this.typeMetadata = collector.GetMetadata();
            this.scratchSize  = collector.ScratchSize;
            this.dataCount    = collector.DataCount;
            this.pinCount     = collector.PinCount;
        }