public override void WriteData(PropertyValue value) { object?refVal = value.ReferenceValue; bool hasValue = refVal is not null; TraceLoggingDataCollector.AddScalar(hasValue); PropertyValue val = valueInfo.PropertyValueFactory(hasValue ? refVal : RuntimeHelpers.GetUninitializedObject(valueInfo.DataType)); this.valueInfo.WriteData(val); }
public override void WriteData(PropertyValue value) { int bookmark = TraceLoggingDataCollector.BeginBufferedArray(); int count = 0; IEnumerable?enumerable = (IEnumerable?)value.ReferenceValue; if (enumerable != null) { foreach (object?element in enumerable) { this.elementInfo.WriteData(elementInfo.PropertyValueFactory(element)); count++; } } TraceLoggingDataCollector.EndBufferedArray(bookmark, count); }