private static void ReadRootObjectBasicMember(Type memberType, BoisBasicTypeInfo basicInfo, PropertyInfo prop, FieldInfo field, Type containerType, ILGenerator il, SharedVariables variableCache) { switch (basicInfo.KnownType) { case EnBasicKnownType.String: EmitGenerator.ReadString(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Bool: EmitGenerator.ReadBool(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int16: EmitGenerator.ReadInt16(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int32: EmitGenerator.ReadInt32(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int64: EmitGenerator.ReadInt64(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt16: EmitGenerator.ReadUInt16(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt32: EmitGenerator.ReadUInt32(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt64: EmitGenerator.ReadUInt64(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Double: EmitGenerator.ReadDouble(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Decimal: EmitGenerator.ReadDecimal(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Single: EmitGenerator.ReadFloat(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Byte: EmitGenerator.ReadByte(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.SByte: EmitGenerator.ReadSByte(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DateTime: EmitGenerator.ReadDateTime(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DateTimeOffset: EmitGenerator.ReadDateTimeOffset(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.KnownTypeArray: EmitGenerator.ReadUnknownArray(prop, field, null, containerType, il, basicInfo.IsNullable, variableCache); break; case EnBasicKnownType.ByteArray: EmitGenerator.ReadByteArray(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Enum: EmitGenerator.ReadEnum(prop, field, null, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.TimeSpan: EmitGenerator.ReadTimeSpan(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Char: EmitGenerator.ReadChar(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Guid: EmitGenerator.ReadGuid(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Color: EmitGenerator.ReadColor(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DbNull: EmitGenerator.ReadDbNull(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Uri: EmitGenerator.ReadUri(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Version: EmitGenerator.ReadVersion(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DataTable: EmitGenerator.ReadDataTable(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DataSet: EmitGenerator.ReadDataSet(prop, field, null, containerType, il, basicInfo.IsNullable); break; default: case EnBasicKnownType.Unknown: return; } }
private static void WriteRootObjectBasicMember(Type memberType, BoisBasicTypeInfo basicInfo, PropertyInfo prop, FieldInfo field, Type containerType, ILGenerator il) { switch (basicInfo.KnownType) { case EnBasicKnownType.String: EmitGenerator.WriteString(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Bool: EmitGenerator.WriteBool(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int16: EmitGenerator.WriteInt16(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int32: EmitGenerator.WriteInt32(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Int64: EmitGenerator.WriteInt64(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt16: EmitGenerator.WriteUInt16(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt32: EmitGenerator.WriteUInt32(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.UInt64: EmitGenerator.WriteUInt64(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Double: EmitGenerator.WriteDouble(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Decimal: EmitGenerator.WriteDecimal(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Single: EmitGenerator.WriteFloat(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Byte: EmitGenerator.WriteByte(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.SByte: EmitGenerator.WriteSByte(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DateTime: EmitGenerator.WriteDateTime(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DateTimeOffset: EmitGenerator.WriteDateTimeOffset(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.ByteArray: EmitGenerator.WriteByteArray(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.KnownTypeArray: EmitGenerator.WriteKnownTypeArray(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Enum: EmitGenerator.WriteEnum(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.TimeSpan: EmitGenerator.WriteTimeSpan(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Char: EmitGenerator.WriteChar(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Guid: EmitGenerator.WriteGuid(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Color: EmitGenerator.WriteColor(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DbNull: EmitGenerator.WriteDbNull(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Uri: EmitGenerator.WriteUri(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.Version: EmitGenerator.WriteVersion(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DataTable: EmitGenerator.WriteDataTable(prop, field, null, containerType, il, basicInfo.IsNullable); break; case EnBasicKnownType.DataSet: EmitGenerator.WriteDataSet(prop, field, null, containerType, il, basicInfo.IsNullable); break; default: case EnBasicKnownType.Unknown: return; } }
internal static void WriteBasicTypeDirectly(Type containerType, ILGenerator il, BoisBasicTypeInfo keyTypeBasicInfo, Func <Type> valueLoader) { switch (keyTypeBasicInfo.KnownType) { case EnBasicKnownType.String: EmitGenerator.WriteString(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Bool: EmitGenerator.WriteBool(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int16: EmitGenerator.WriteInt16(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int32: EmitGenerator.WriteInt32(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int64: EmitGenerator.WriteInt64(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt16: EmitGenerator.WriteUInt16(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt32: EmitGenerator.WriteUInt32(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt64: EmitGenerator.WriteUInt64(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Double: EmitGenerator.WriteDouble(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Decimal: EmitGenerator.WriteDecimal(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Single: EmitGenerator.WriteFloat(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Byte: EmitGenerator.WriteByte(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.SByte: EmitGenerator.WriteSByte(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DateTime: EmitGenerator.WriteDateTime(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DateTimeOffset: EmitGenerator.WriteDateTimeOffset(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.KnownTypeArray: EmitGenerator.WriteKnownTypeArray(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.ByteArray: EmitGenerator.WriteByteArray(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Enum: EmitGenerator.WriteEnum(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.TimeSpan: EmitGenerator.WriteTimeSpan(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Char: EmitGenerator.WriteChar(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Guid: EmitGenerator.WriteGuid(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Color: EmitGenerator.WriteColor(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DbNull: EmitGenerator.WriteDbNull(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Uri: EmitGenerator.WriteUri(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Version: EmitGenerator.WriteVersion(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DataTable: EmitGenerator.WriteDataTable(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DataSet: EmitGenerator.WriteDataSet(null, null, valueLoader, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Unknown: default: throw new ArgumentOutOfRangeException("keyTypeBasicInfo.KnownType"); } }
internal static void ReadBasicTypeDirectly(ILGenerator il, Type containerType, BoisBasicTypeInfo keyTypeBasicInfo, Action valueSetter) { switch (keyTypeBasicInfo.KnownType) { case EnBasicKnownType.String: EmitGenerator.ReadString(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Bool: EmitGenerator.ReadBool(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int16: EmitGenerator.ReadInt16(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int32: EmitGenerator.ReadInt32(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Int64: EmitGenerator.ReadInt64(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt16: EmitGenerator.ReadUInt16(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt32: EmitGenerator.ReadUInt32(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.UInt64: EmitGenerator.ReadUInt64(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Double: EmitGenerator.ReadDouble(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Decimal: EmitGenerator.ReadDecimal(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Single: EmitGenerator.ReadFloat(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Byte: EmitGenerator.ReadByte(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.SByte: EmitGenerator.ReadSByte(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DateTime: EmitGenerator.ReadDateTime(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DateTimeOffset: EmitGenerator.ReadDateTimeOffset(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.KnownTypeArray: //EmitGenerator.ReadKnownTypeArray(null, null, valueSetter, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.ByteArray: EmitGenerator.ReadByteArray(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Enum: EmitGenerator.ReadEnum(null, null, valueSetter, containerType, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.TimeSpan: EmitGenerator.ReadTimeSpan(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Char: EmitGenerator.ReadChar(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Guid: EmitGenerator.ReadGuid(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Color: EmitGenerator.ReadColor(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DbNull: EmitGenerator.ReadDbNull(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Uri: EmitGenerator.ReadUri(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Version: EmitGenerator.ReadVersion(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DataTable: EmitGenerator.ReadDataTable(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.DataSet: EmitGenerator.ReadDataSet(null, null, valueSetter, containerType, il, keyTypeBasicInfo.IsNullable); break; case EnBasicKnownType.Unknown: default: throw new ArgumentOutOfRangeException("keyTypeBasicInfo.KnownType"); } }