示例#1
0
        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;
            }
        }
示例#2
0
        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;
            }
        }