public void MarshalUnion(NdrBuffer buffer) { buffer.WriteInt32LittleEndian(Values.Count); switch (Type) { case ClaimType.CLAIM_TYPE_STRING: var arr = GetValues <string>().Select(v => v.AsMemory()); buffer.WriteDeferredArray(arr, val => buffer.WriteConformantVaryingArray(val.Span)); break; default: buffer.WriteFixedPrimitiveArray <long>(GetValues <long>().ToArray()); break; } }
public void MarshalUnion(NdrBuffer buffer) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } buffer.WriteInt32LittleEndian(this.Values.Count); switch (this.Type) { case ClaimType.CLAIM_TYPE_STRING: var arr = this.GetValuesOfType <string>().Select(v => v.AsMemory()); buffer.WriteDeferredArray(arr, val => buffer.WriteConformantVaryingArray(val.Span)); break; default: buffer.WriteFixedPrimitiveArray <long>(this.GetValuesOfType <long>().ToArray()); break; } }