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(); }