/// <summary> /// Creates the instance. /// </summary> /// <param name="dataContractSerializer">The data contract serializer.</param> /// <param name="type">The type.</param> /// <param name="serializedObject">The serialized object.</param> /// <param name="encoding">The encoding.</param> /// <returns></returns> public object CreateInstance(IDataContractSerializer dataContractSerializer, Type type, string serializedObject, Encoding encoding) { Type relatedType = _objectBuilder.GetRelatedType(type); if (relatedType == null) { LoggerManager.Instance.Error(string.Format("Mierda el related Type es nulo {0}", type.FullName)); } return(dataContractSerializer.Deserialize(serializedObject, encoding, relatedType)); }
/// <summary> /// Messages the received. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> private void MessageReceived(object sender, OutputGatewayEventHandlerArgs <byte[], RouterHeader> args) { InvokeOnMessageReceived(); try { if (!string.IsNullOrEmpty(args.Header.BodyType)) { if (args.Header.Type != MessageBusType.Reply) { _routerOutputHelper.Publish(args.Header.BodyType, args.Header.Priority, args.SerializedMessage); } else { _routerOutputHelper.Reply(args.Header.Identification, args.Header.Priority, args.SerializedMessage); } } else { Logger.Error(string.Format("El mensaje no tiene bodytype: {0}", Encoding.UTF8.GetString(args.SerializedMessage))); } } catch (Exception ex) { Logger.Error(string.Format("Error publish bus: {0}", Encoding.UTF8.GetString(args.SerializedMessage)), ex); var messageByte = new byte[args.Header.MessageLength]; args.Message.CopyTo(messageByte, 15); var message = _serializer.Deserialize <MessageBus>(messageByte); OnOnRouterError(message, ex); } InvokeOnMessageSent(args.Message != null ? new MonitorEventArgs { MessageCreatedAt = args.Header.CreatedAt } : new MonitorEventArgs()); }