1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
5 namespace System.ServiceModel.Configuration
8 using System.ComponentModel;
9 using System.ComponentModel.Design.Serialization;
10 using System.Globalization;
12 class TransactionProtocolConverter : TypeConverter
14 public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
16 if (typeof(string) == sourceType)
20 return base.CanConvertFrom(context, sourceType);
23 public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
25 if (typeof(InstanceDescriptor) == destinationType)
29 return base.CanConvertTo(context, destinationType);
32 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
34 string protocol = value as string;
35 #pragma warning suppress 56507 // Microsoft, Really checking for null (meaning value was not a string) versus String.Empty
40 case ConfigurationStrings.OleTransactions:
41 return TransactionProtocol.OleTransactions;
42 case ConfigurationStrings.WSAtomicTransactionOctober2004:
43 return TransactionProtocol.WSAtomicTransactionOctober2004;
44 case ConfigurationStrings.WSAtomicTransaction11:
45 return TransactionProtocol.WSAtomicTransaction11;
47 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.ConfigInvalidTransactionFlowProtocolValue, protocol));
50 return base.ConvertFrom(context, culture, value);
53 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
55 if (typeof(string) == destinationType && value is TransactionProtocol)
57 TransactionProtocol protocol = (TransactionProtocol)value;
60 return base.ConvertTo(context, culture, value, destinationType);