AsmResolver.Net.Signatures.ElementSignature.Write C# (CSharp) Method

Write() public method

public Write ( WritingContext context ) : void
context WritingContext
return void
        public override void Write(WritingContext context)
        {
            if (Value == null)
                throw new ArgumentNullException();

            var writer = context.Writer;
            switch (Type.GetTypeCode(Value.GetType()))
            {
                case TypeCode.Boolean:
                    writer.WriteByte((byte)((bool)Value ? 1 : 0));
                    break;
                case TypeCode.Byte:
                    writer.WriteByte((byte)Value);
                    break;
                case TypeCode.Char:
                    writer.WriteUInt16((char)Value);
                    break;
                case TypeCode.Double:
                    writer.WriteDouble((double)Value);
                    break;
                case TypeCode.Int16:
                    writer.WriteInt16((short)Value);
                    break;
                case TypeCode.Int32:
                    writer.WriteInt32((int)Value);
                    break;
                case TypeCode.Int64:
                    writer.WriteInt64((long)Value);
                    break;
                case TypeCode.SByte:
                    writer.WriteSByte((sbyte)Value);
                    break;
                case TypeCode.Single:
                    writer.WriteSingle((float)Value);
                    break;
                case TypeCode.String:
                    writer.WriteSerString((string)Value);
                    break;
                case TypeCode.UInt16:
                    writer.WriteUInt16((ushort)Value);
                    break;
                case TypeCode.UInt32:
                    writer.WriteUInt32((uint)Value);
                    break;
                case TypeCode.UInt64:
                    writer.WriteUInt64((ulong)Value);
                    break;
                default:
                    var typeSignature = Value as TypeSignature;
                    if (typeSignature != null)
                        writer.WriteSerString(TypeNameBuilder.GetAssemblyQualifiedName(typeSignature));
                    else
                        throw new NotSupportedException();
                    break;
            }
        }