Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Messaging / System / Messaging / Design / MessageFormatterConverter.cs / 1305376 / MessageFormatterConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Messaging.Design { using System.Messaging; using System.Threading; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Diagnostics; using System; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; using System.Windows.Forms.ComponentModel; using System.Messaging.Interop; using System.Collections; using System.Runtime.Serialization.Formatters; using System.Globalization; ////// internal class MessageFormatterConverter : ExpandableObjectConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return (sourceType == typeof(string)); } /// /// /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ///Gets a value indicating whether this converter can /// convert an object to the given destination type using the context. ////// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null && value is string) { if (((string)value) == typeof(ActiveXMessageFormatter).Name) return new ActiveXMessageFormatter(); if (((string)value) == typeof(BinaryMessageFormatter).Name) return new BinaryMessageFormatter(); if (((string)value) == typeof(XmlMessageFormatter).Name) return new XmlMessageFormatter(); } return null; } /// /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && destinationType == typeof(string)) { if (value == null) return Res.GetString(Res.toStringNone); return value.GetType().Name; } if (destinationType == typeof(InstanceDescriptor)) { if (value is XmlMessageFormatter) { XmlMessageFormatter f = (XmlMessageFormatter)value; ConstructorInfo ctor = typeof(XmlMessageFormatter).GetConstructor(new Type[] {typeof(string[])}); if (ctor != null) { return new InstanceDescriptor(ctor, new object[] {f.TargetTypeNames}); } } else if (value is ActiveXMessageFormatter) { ConstructorInfo ctor = typeof(ActiveXMessageFormatter).GetConstructor(new Type[0]); if (ctor != null) { return new InstanceDescriptor(ctor, new object[0]); } } else if (value is BinaryMessageFormatter) { BinaryMessageFormatter f = (BinaryMessageFormatter)value; ConstructorInfo ctor = typeof(BinaryMessageFormatter).GetConstructor(new Type[] { typeof(FormatterAssemblyStyle), typeof(FormatterTypeStyle)}); if (ctor != null) { return new InstanceDescriptor(ctor, new object[] {f.TopObjectFormat, f.TypeFormat}); } } } return base.ConvertTo(context, culture, value, destinationType); } /// /// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { StandardValuesCollection values = new StandardValuesCollection(new object[] {new ActiveXMessageFormatter(), new BinaryMessageFormatter(), new XmlMessageFormatter(), null}); return values; } public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return true; } /// /// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Messaging.Design { using System.Messaging; using System.Threading; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Diagnostics; using System; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; using System.Windows.Forms.ComponentModel; using System.Messaging.Interop; using System.Collections; using System.Runtime.Serialization.Formatters; using System.Globalization; ////// internal class MessageFormatterConverter : ExpandableObjectConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return (sourceType == typeof(string)); } /// /// /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ///Gets a value indicating whether this converter can /// convert an object to the given destination type using the context. ////// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null && value is string) { if (((string)value) == typeof(ActiveXMessageFormatter).Name) return new ActiveXMessageFormatter(); if (((string)value) == typeof(BinaryMessageFormatter).Name) return new BinaryMessageFormatter(); if (((string)value) == typeof(XmlMessageFormatter).Name) return new XmlMessageFormatter(); } return null; } /// /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && destinationType == typeof(string)) { if (value == null) return Res.GetString(Res.toStringNone); return value.GetType().Name; } if (destinationType == typeof(InstanceDescriptor)) { if (value is XmlMessageFormatter) { XmlMessageFormatter f = (XmlMessageFormatter)value; ConstructorInfo ctor = typeof(XmlMessageFormatter).GetConstructor(new Type[] {typeof(string[])}); if (ctor != null) { return new InstanceDescriptor(ctor, new object[] {f.TargetTypeNames}); } } else if (value is ActiveXMessageFormatter) { ConstructorInfo ctor = typeof(ActiveXMessageFormatter).GetConstructor(new Type[0]); if (ctor != null) { return new InstanceDescriptor(ctor, new object[0]); } } else if (value is BinaryMessageFormatter) { BinaryMessageFormatter f = (BinaryMessageFormatter)value; ConstructorInfo ctor = typeof(BinaryMessageFormatter).GetConstructor(new Type[] { typeof(FormatterAssemblyStyle), typeof(FormatterTypeStyle)}); if (ctor != null) { return new InstanceDescriptor(ctor, new object[] {f.TopObjectFormat, f.TypeFormat}); } } } return base.ConvertTo(context, culture, value, destinationType); } /// /// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { StandardValuesCollection values = new StandardValuesCollection(new object[] {new ActiveXMessageFormatter(), new BinaryMessageFormatter(), new XmlMessageFormatter(), null}); return values; } public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return true; } /// /// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProviderBase.cs
- basecomparevalidator.cs
- ClipboardData.cs
- ClientCredentials.cs
- CatalogZoneBase.cs
- FormsAuthenticationEventArgs.cs
- Floater.cs
- ToolStripDropDownButton.cs
- SoapFaultCodes.cs
- GridPattern.cs
- SerializationEventsCache.cs
- ConstraintEnumerator.cs
- FileUtil.cs
- HtmlInputImage.cs
- InputQueueChannelAcceptor.cs
- ClientSettings.cs
- SafeNativeMethods.cs
- DateTimeConverter.cs
- AudioFormatConverter.cs
- ConstructorExpr.cs
- DropShadowEffect.cs
- ExternalException.cs
- CustomLineCap.cs
- TreeNodeEventArgs.cs
- GenericXmlSecurityTokenAuthenticator.cs
- DiffuseMaterial.cs
- ContentPosition.cs
- XmlSchemaSimpleContent.cs
- DependencyObjectValidator.cs
- ConstructorBuilder.cs
- ButtonAutomationPeer.cs
- FieldNameLookup.cs
- SplitterEvent.cs
- InfocardInteractiveChannelInitializer.cs
- HtmlInputControl.cs
- HttpModuleCollection.cs
- EntityWrapper.cs
- StylusPointPropertyInfo.cs
- ConsoleTraceListener.cs
- AudioStateChangedEventArgs.cs
- RenderContext.cs
- HttpServerProtocol.cs
- HMACRIPEMD160.cs
- HyperLink.cs
- Connector.xaml.cs
- HwndStylusInputProvider.cs
- ExistsInCollection.cs
- DataControlImageButton.cs
- Math.cs
- XmlUnspecifiedAttribute.cs
- TextBoxLine.cs
- EntityClassGenerator.cs
- AlternateView.cs
- XhtmlConformanceSection.cs
- ErrorRuntimeConfig.cs
- ChannelPoolSettingsElement.cs
- BufferedGraphics.cs
- PreservationFileWriter.cs
- RootBuilder.cs
- FileDialog.cs
- TreeViewItem.cs
- SiteMapDesignerDataSourceView.cs
- XpsPartBase.cs
- RepeatInfo.cs
- MimeTypeAttribute.cs
- TextPatternIdentifiers.cs
- ModuleConfigurationInfo.cs
- XmlSchemaSimpleTypeUnion.cs
- odbcmetadatacolumnnames.cs
- QueueProcessor.cs
- sqlcontext.cs
- UIElement.cs
- ToolZone.cs
- SystemInfo.cs
- XmlCollation.cs
- DbProviderManifest.cs
- LayoutEditorPart.cs
- TimeZoneInfo.cs
- sitestring.cs
- XmlNamespaceMapping.cs
- DesigntimeLicenseContextSerializer.cs
- RolePrincipal.cs
- EntryIndex.cs
- EntityFrameworkVersions.cs
- AnnotationMap.cs
- Span.cs
- AppModelKnownContentFactory.cs
- FormView.cs
- SecurityKeyType.cs
- TrackingServices.cs
- Random.cs
- ConfigurationManager.cs
- StreamAsIStream.cs
- Scene3D.cs
- BookmarkScope.cs
- ISCIIEncoding.cs
- SelectionRangeConverter.cs
- QilDataSource.cs
- DiffuseMaterial.cs
- QuaternionKeyFrameCollection.cs