| File: FrameworkFork\System.ServiceModel\System\ServiceModel\FaultCode.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ServiceModel.Description; namespace System.ServiceModel { public class FaultCode { private FaultCode _subCode; private string _name; private string _ns; private EnvelopeVersion _version; public FaultCode(string name) : this(name, "", null) { } public FaultCode(string name, FaultCode subCode) : this(name, "", subCode) { } public FaultCode(string name, string ns) : this(name, ns, null) { } public FaultCode(string name, string ns, FaultCode subCode) { if (name == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("name")); if (name.Length == 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("name")); if (!string.IsNullOrEmpty(ns)) NamingHelper.CheckUriParameter(ns, "ns"); _name = name; _ns = ns; _subCode = subCode; if (ns == Message12Strings.Namespace) _version = EnvelopeVersion.Soap12; else if (ns == Message11Strings.Namespace) _version = EnvelopeVersion.Soap11; else if (ns == MessageStrings.Namespace) _version = EnvelopeVersion.None; else _version = null; } public bool IsPredefinedFault { get { return _ns.Length == 0 || _version != null; } } public bool IsSenderFault { get { if (IsPredefinedFault) return _name == (_version ?? EnvelopeVersion.Soap12).SenderFaultName; return false; } } public bool IsReceiverFault { get { if (IsPredefinedFault) return _name == (_version ?? EnvelopeVersion.Soap12).ReceiverFaultName; return false; } } public string Namespace { get { return _ns; } } public string Name { get { return _name; } } public FaultCode SubCode { get { return _subCode; } } public static FaultCode CreateSenderFaultCode(FaultCode subCode) { return new FaultCode("Sender", subCode); } public static FaultCode CreateSenderFaultCode(string name, string ns) { return CreateSenderFaultCode(new FaultCode(name, ns)); } public static FaultCode CreateReceiverFaultCode(FaultCode subCode) { if (subCode == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("subCode")); return new FaultCode("Receiver", subCode); } public static FaultCode CreateReceiverFaultCode(string name, string ns) { return CreateReceiverFaultCode(new FaultCode(name, ns)); } } }