public static bool CanConvertElements(Type sourceElementType, Type targetElementType, IConversionService conversionService) { if (targetElementType == null) { // yes return(true); } if (sourceElementType == null) { // maybe return(true); } if (conversionService.CanConvert(sourceElementType, targetElementType)) { // yes return(true); } if (sourceElementType.IsAssignableFrom(targetElementType)) { // maybe return(true); } // no return(false); }
public object FromMessage(IMessage message, Type targetClass) { if (_conversionService.CanConvert(message.Payload.GetType(), targetClass)) { return(_conversionService.Convert(message.Payload, message.Payload.GetType(), targetClass)); } else { return(null); } }
public override object FromMessage(IMessage message, Type targetClass) { var payload = message.Payload; if (_conversionService.CanConvert(payload.GetType(), targetClass)) { try { return(_conversionService.Convert(payload, payload.GetType(), targetClass)); } catch (ConversionException ex) { throw new MessageConversionException(message, "Failed to convert message payload '" + payload + "' to '" + targetClass.Name + "'", ex); } } return(targetClass.IsInstanceOfType(payload) ? payload : null); }