Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

68 lines
2.1 KiB
C#

//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel
{
using System;
[AttributeUsage(ServiceModelAttributeTargets.ServiceContract | ServiceModelAttributeTargets.OperationContract, Inherited = false, AllowMultiple = false)]
public sealed class XmlSerializerFormatAttribute : Attribute
{
bool supportFaults = false;
OperationFormatStyle style;
bool isStyleSet;
OperationFormatUse use;
public bool SupportFaults
{
get { return supportFaults; }
set { supportFaults = value; }
}
public OperationFormatStyle Style
{
get { return style; }
set
{
ValidateOperationFormatStyle(value);
style = value;
isStyleSet = true;
}
}
public OperationFormatUse Use
{
get { return use; }
set
{
ValidateOperationFormatUse(value);
use = value;
if (!isStyleSet && IsEncoded)
Style = OperationFormatStyle.Rpc;
}
}
internal bool IsEncoded
{
get { return use == OperationFormatUse.Encoded; }
set { use = value ? OperationFormatUse.Encoded : OperationFormatUse.Literal; }
}
static internal void ValidateOperationFormatStyle(OperationFormatStyle value)
{
if (!OperationFormatStyleHelper.IsDefined(value))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
}
}
static internal void ValidateOperationFormatUse(OperationFormatUse value)
{
if (!OperationFormatUseHelper.IsDefined(value))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
}
}
}
}