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 ReliableMessagingVersionConverter : 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 version = 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.Default:
41 return ReliableMessagingVersion.Default;
42 case ConfigurationStrings.WSReliableMessaging11:
43 return ReliableMessagingVersion.WSReliableMessaging11;
44 case ConfigurationStrings.WSReliableMessagingFebruary2005:
45 return ReliableMessagingVersion.WSReliableMessagingFebruary2005;
47 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.ConfigInvalidReliableMessagingVersionValue, version));
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 ReliableMessagingVersion)
57 ReliableMessagingVersion version = (ReliableMessagingVersion)value;
59 if (version == ReliableMessagingVersion.Default)
61 return ConfigurationStrings.Default;
63 else if (version == ReliableMessagingVersion.WSReliableMessaging11)
65 return ConfigurationStrings.WSReliableMessaging11;
67 else if (version == ReliableMessagingVersion.WSReliableMessagingFebruary2005)
69 return ConfigurationStrings.WSReliableMessagingFebruary2005;
73 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value",
74 SR.GetString(SR.ConfigInvalidClassInstanceValue, typeof(ReliableMessagingVersion).FullName)));
77 return base.ConvertTo(context, culture, value, destinationType);