static void EncodeType(CustomAttributeElementTypeEncoder typeEnc, Type type) { if (type == typeof(Type)) { typeEnc.SystemType(); } else { // Work out the primitive type code var primTypeCode = PrimitiveTypeCodeFromSystemTypeCode(type); typeEnc.PrimitiveType(primTypeCode); } }
public void CustomAttributeElementTypeEncoder_PrimitiveType() { var b = new BlobBuilder(); var e = new CustomAttributeElementTypeEncoder(b); Assert.Same(b, e.Builder); e.PrimitiveType(PrimitiveSerializationTypeCode.Boolean); AssertEx.Equal(new byte[] { 0x02 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Char); AssertEx.Equal(new byte[] { 0x03 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.SByte); AssertEx.Equal(new byte[] { 0x04 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Byte); AssertEx.Equal(new byte[] { 0x05 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int16); AssertEx.Equal(new byte[] { 0x06 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt16); AssertEx.Equal(new byte[] { 0x07 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int32); AssertEx.Equal(new byte[] { 0x08 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt32); AssertEx.Equal(new byte[] { 0x09 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int64); AssertEx.Equal(new byte[] { 0x0A }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt64); AssertEx.Equal(new byte[] { 0x0B }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Single); AssertEx.Equal(new byte[] { 0x0C }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Double); AssertEx.Equal(new byte[] { 0x0D }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.String); AssertEx.Equal(new byte[] { 0x0E }, b.ToArray()); b.Clear(); Assert.Throws <ArgumentOutOfRangeException>(() => e.PrimitiveType((PrimitiveSerializationTypeCode)255)); }
public void CustomAttributeElementTypeEncoder_PrimitiveType() { var b = new BlobBuilder(); var e = new CustomAttributeElementTypeEncoder(b); Assert.Same(b, e.Builder); e.PrimitiveType(PrimitiveSerializationTypeCode.Boolean); AssertEx.Equal(new byte[] { 0x02 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Char); AssertEx.Equal(new byte[] { 0x03 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.SByte); AssertEx.Equal(new byte[] { 0x04 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Byte); AssertEx.Equal(new byte[] { 0x05 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int16); AssertEx.Equal(new byte[] { 0x06 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt16); AssertEx.Equal(new byte[] { 0x07 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int32); AssertEx.Equal(new byte[] { 0x08 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt32); AssertEx.Equal(new byte[] { 0x09 }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Int64); AssertEx.Equal(new byte[] { 0x0A }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.UInt64); AssertEx.Equal(new byte[] { 0x0B }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Single); AssertEx.Equal(new byte[] { 0x0C }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.Double); AssertEx.Equal(new byte[] { 0x0D }, b.ToArray()); b.Clear(); e.PrimitiveType(PrimitiveSerializationTypeCode.String); AssertEx.Equal(new byte[] { 0x0E }, b.ToArray()); b.Clear(); Assert.Throws<ArgumentOutOfRangeException>(() => e.PrimitiveType((PrimitiveSerializationTypeCode)255)); }