コード例 #1
0
        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();
        }
コード例 #2
0
 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;
 }
コード例 #3
0
 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);
 }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
 public static SerializableType CreateMapType(AmqpContractSerializer serializer, Type type, MemberAccessor keyAccessor, MemberAccessor valueAccessor, MethodAccessor addAccessor)
 {
     return(new SerializableType.MapType(serializer, type, keyAccessor, valueAccessor, addAccessor));
 }
コード例 #6
0
 public static SerializableType CreateListType(AmqpContractSerializer serializer, Type type, Type itemType, MethodAccessor addAccessor)
 {
     return(new SerializableType.ListType(serializer, type, itemType, addAccessor));
 }
コード例 #7
0
 public ListType(AmqpContractSerializer serializer, Type type, Type itemType, MethodAccessor addAccessor) : base(serializer, type)
 {
     this.itemType          = serializer.GetType(itemType);
     this.addMethodAccessor = addAccessor;
 }
コード例 #8
0
 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));
 }
コード例 #9
0
 public static SerializableType CreateAmqpSerializableType(AmqpContractSerializer serializer, Type type)
 {
     return(new SerializableType.AmqpSerializableType(serializer, type));
 }
コード例 #10
0
 protected SerializableType(AmqpContractSerializer serializer, Type type)
 {
     this.serializer     = serializer;
     this.type           = type;
     this.hasDefaultCtor = type.GetConstructor(Type.EmptyTypes) != null;
 }
コード例 #11
0
 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)
 {
 }
コード例 #12
0
 protected CollectionType(AmqpContractSerializer serializer, Type type) : base(serializer, type)
 {
 }
コード例 #13
0
 public AmqpSerializableType(AmqpContractSerializer serializer, Type type) : base(serializer, type)
 {
 }