コード例 #1
0
ファイル: AmqpCodec.cs プロジェクト: jdaigle/LightRail
        /// <summary>
        /// Reads a known DescribedType object from the buffer given the already read descriptor.
        /// </summary>
        /// <param name="buffer"></param>
        /// <param name="descriptor"></param>
        public static object DecodeKnownDescribedType(ByteBuffer buffer, Descriptor descriptor)
        {
            Func <object> ctor;

            if (DescribedTypeCodec.TryGetKnownDescribedConstructor(descriptor.Code, out ctor))
            {
                var instance = ctor() as DescribedType;
                instance.Decode(buffer);
                return(instance);
            }
            else
            {
                throw new AmqpException(ErrorCode.DecodeError, $"Missing Constructor For Known Described Type {descriptor.ToString()}");
            }
        }