public static EncodingBase GetEncoding(Type type) { EncodingBase encodingBase = null; if (AmqpEncoding.encodingsByType.TryGetValue(type, out encodingBase)) { return(encodingBase); } if (type.IsArray) { return(AmqpEncoding.arrayEncoding); } if (typeof(IList).IsAssignableFrom(type)) { return(AmqpEncoding.listEncoding); } if (!typeof(DescribedType).IsAssignableFrom(type)) { throw AmqpEncoding.GetEncodingException(SRAmqp.AmqpInvalidType(type.ToString())); } return(AmqpEncoding.describedTypeEncoding); }
public static EncodingBase GetEncoding(object value) { EncodingBase encodingBase = null; Type type = value.GetType(); if (AmqpEncoding.encodingsByType.TryGetValue(type, out encodingBase)) { return(encodingBase); } if (type.IsArray) { return(AmqpEncoding.arrayEncoding); } if (value is IList) { return(AmqpEncoding.listEncoding); } if (!(value is DescribedType)) { throw AmqpEncoding.GetEncodingException(SRAmqp.AmqpInvalidType(type.ToString())); } return(AmqpEncoding.describedTypeEncoding); }