|
//-----------------------------------------------------------------------------
// 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"));
}
}
}
}
|