public Message CreateMessage(MessageVersion messageVersion, ReliableMessagingVersion reliableMessagingVersion) { this.SetReliableMessagingVersion(reliableMessagingVersion); string action = WsrmIndex.GetFaultActionString(messageVersion.Addressing, reliableMessagingVersion); if (messageVersion.Envelope == EnvelopeVersion.Soap11) { this.code = this.Get11Code(this.code, this.subcode); } else if (messageVersion.Envelope == EnvelopeVersion.Soap12) { if (this.code.SubCode == null) { FaultCode subCode = new FaultCode(this.subcode, WsrmIndex.GetNamespaceString(reliableMessagingVersion)); this.code = new FaultCode(this.code.Name, this.code.Namespace, subCode); } this.hasDetail = this.Get12HasDetail(); } else { throw Fx.AssertAndThrow("Unsupported MessageVersion."); } Message message = Message.CreateMessage(messageVersion, this, action); this.OnFaultMessageCreated(messageVersion, message); return(message); }
private static Message CreateCSRefusedFault(MessageVersion messageVersion, ReliableMessagingVersion reliableMessagingVersion, bool isSenderFault, FaultCode subCode, string reason) { FaultCode code; if (messageVersion.Envelope == EnvelopeVersion.Soap11) { code = new FaultCode("CreateSequenceRefused", WsrmIndex.GetNamespaceString(reliableMessagingVersion)); } else { if (messageVersion.Envelope != EnvelopeVersion.Soap12) { throw Fx.AssertAndThrow("Unsupported version."); } if (subCode == null) { subCode = new FaultCode("CreateSequenceRefused", WsrmIndex.GetNamespaceString(reliableMessagingVersion), subCode); } if (isSenderFault) { code = FaultCode.CreateSenderFaultCode(subCode); } else { code = FaultCode.CreateReceiverFaultCode(subCode); } } FaultReason reason2 = new FaultReason(System.ServiceModel.SR.GetString("CSRefused", new object[] { reason }), CultureInfo.CurrentCulture); MessageFault fault = MessageFault.CreateFault(code, reason2); string faultActionString = WsrmIndex.GetFaultActionString(messageVersion.Addressing, reliableMessagingVersion); return(Message.CreateMessage(messageVersion, fault, faultActionString)); }