static AmqpContractSerializer() { Dictionary <Type, SerializableType> types = new Dictionary <Type, SerializableType>() { { typeof(bool), SerializableType.CreateSingleValueType(typeof(bool)) }, { typeof(byte), SerializableType.CreateSingleValueType(typeof(byte)) }, { typeof(ushort), SerializableType.CreateSingleValueType(typeof(ushort)) }, { typeof(uint), SerializableType.CreateSingleValueType(typeof(uint)) }, { typeof(ulong), SerializableType.CreateSingleValueType(typeof(ulong)) }, { typeof(sbyte), SerializableType.CreateSingleValueType(typeof(sbyte)) }, { typeof(short), SerializableType.CreateSingleValueType(typeof(short)) }, { typeof(int), SerializableType.CreateSingleValueType(typeof(int)) }, { typeof(long), SerializableType.CreateSingleValueType(typeof(long)) }, { typeof(float), SerializableType.CreateSingleValueType(typeof(float)) }, { typeof(double), SerializableType.CreateSingleValueType(typeof(double)) }, { typeof(decimal), SerializableType.CreateSingleValueType(typeof(decimal)) }, { typeof(char), SerializableType.CreateSingleValueType(typeof(char)) }, { typeof(DateTime), SerializableType.CreateSingleValueType(typeof(DateTime)) }, { typeof(Guid), SerializableType.CreateSingleValueType(typeof(Guid)) }, { typeof(ArraySegment <byte>), SerializableType.CreateSingleValueType(typeof(ArraySegment <byte>)) }, { typeof(string), SerializableType.CreateSingleValueType(typeof(string)) }, { typeof(AmqpSymbol), SerializableType.CreateSingleValueType(typeof(AmqpSymbol)) }, { typeof(TimeSpan), SerializableType.CreateDescribedValueType <TimeSpan, long>("com.microsoft:timespan", (TimeSpan ts) => ts.Ticks, (long l) => TimeSpan.FromTicks(l)) }, { typeof(Uri), SerializableType.CreateDescribedValueType <Uri, string>("com.microsoft:uri", (Uri u) => u.AbsoluteUri, (string s) => new Uri(s)) }, { typeof(DateTimeOffset), SerializableType.CreateDescribedValueType <DateTimeOffset, long>("com.microsoft:datetime-offset", (DateTimeOffset d) => d.UtcTicks, (long l) => new DateTimeOffset(new DateTime(l, DateTimeKind.Utc))) }, { typeof(object), SerializableType.CreateObjectType(typeof(object)) } }; AmqpContractSerializer.builtInTypes = types; AmqpContractSerializer.Instance = new AmqpContractSerializer(); }
public MapType(AmqpContractSerializer serializer, Type type, MemberAccessor keyAccessor, MemberAccessor valueAccessor, MethodAccessor addAccessor) : base(serializer, type) { this.keyType = this.serializer.GetType(keyAccessor.Type); this.valueType = this.serializer.GetType(valueAccessor.Type); this.keyAccessor = keyAccessor; this.valueAccessor = valueAccessor; this.addMethodAccessor = addAccessor; }
protected DescribedType(AmqpContractSerializer serializer, Type type, SerializableType baseType, string descriptorName, ulong?descriptorCode, SerialiableMember[] members, Dictionary <Type, SerializableType> knownTypes, MethodAccessor onDesrialized) : base(serializer, type) { this.baseType = (SerializableType.DescribedType)baseType; this.descriptorName = descriptorName; this.descriptorCode = descriptorCode; this.members = members; this.onDeserialized = onDesrialized; this.knownTypes = SerializableType.DescribedType.GetKnownTypes(knownTypes); }
public DescribedMapType(AmqpContractSerializer serializer, Type type, SerializableType baseType, string descriptorName, ulong?descriptorCode, SerialiableMember[] members, Dictionary <Type, SerializableType> knownTypes, MethodAccessor onDesrialized) : base(serializer, type, baseType, descriptorName, descriptorCode, members, knownTypes, onDesrialized) { this.membersMap = new Dictionary <string, SerialiableMember>(); SerialiableMember[] serialiableMemberArray = members; for (int i = 0; i < (int)serialiableMemberArray.Length; i++) { SerialiableMember serialiableMember = serialiableMemberArray[i]; this.membersMap.Add(serialiableMember.Name, serialiableMember); } }
public static SerializableType CreateMapType(AmqpContractSerializer serializer, Type type, MemberAccessor keyAccessor, MemberAccessor valueAccessor, MethodAccessor addAccessor) { return(new SerializableType.MapType(serializer, type, keyAccessor, valueAccessor, addAccessor)); }
public static SerializableType CreateListType(AmqpContractSerializer serializer, Type type, Type itemType, MethodAccessor addAccessor) { return(new SerializableType.ListType(serializer, type, itemType, addAccessor)); }
public ListType(AmqpContractSerializer serializer, Type type, Type itemType, MethodAccessor addAccessor) : base(serializer, type) { this.itemType = serializer.GetType(itemType); this.addMethodAccessor = addAccessor; }
public static SerializableType CreateDescribedMapType(AmqpContractSerializer serializer, Type type, SerializableType baseType, string descriptorName, ulong?descriptorCode, SerialiableMember[] members, Dictionary <Type, SerializableType> knownTypes, MethodAccessor onDesrialized) { return(new SerializableType.DescribedMapType(serializer, type, baseType, descriptorName, descriptorCode, members, knownTypes, onDesrialized)); }
public static SerializableType CreateAmqpSerializableType(AmqpContractSerializer serializer, Type type) { return(new SerializableType.AmqpSerializableType(serializer, type)); }
protected SerializableType(AmqpContractSerializer serializer, Type type) { this.serializer = serializer; this.type = type; this.hasDefaultCtor = type.GetConstructor(Type.EmptyTypes) != null; }
public DescribedListType(AmqpContractSerializer serializer, Type type, SerializableType baseType, string descriptorName, ulong?descriptorCode, SerialiableMember[] members, Dictionary <Type, SerializableType> knownTypes, MethodAccessor onDesrialized) : base(serializer, type, baseType, descriptorName, descriptorCode, members, knownTypes, onDesrialized) { }
protected CollectionType(AmqpContractSerializer serializer, Type type) : base(serializer, type) { }
public AmqpSerializableType(AmqpContractSerializer serializer, Type type) : base(serializer, type) { }