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
- OdbcParameterCollection.cs
- TextEditorLists.cs
- ArcSegment.cs
- HitTestDrawingContextWalker.cs
- DetailsViewUpdatedEventArgs.cs
- TraceRecord.cs
- LineVisual.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- StylusPointDescription.cs
- TaskHelper.cs
- ObjectDataSourceStatusEventArgs.cs
- EntityDataSourceDesignerHelper.cs
- StringCollection.cs
- FaultDesigner.cs
- StorageInfo.cs
- HashCodeCombiner.cs
- WindowsListViewItem.cs
- DynamicRendererThreadManager.cs
- ProcessModule.cs
- XmlTextEncoder.cs
- AutoFocusStyle.xaml.cs
- CloudCollection.cs
- CacheMode.cs
- StringResourceManager.cs
- RequiredAttributeAttribute.cs
- DbConnectionPoolIdentity.cs
- ServiceModelReg.cs
- AmbientProperties.cs
- FixedPosition.cs
- EndpointDiscoveryElement.cs
- WeakEventManager.cs
- Resources.Designer.cs
- EmptyElement.cs
- PageContentCollection.cs
- ExecutionContext.cs
- ManagedIStream.cs
- HttpDictionary.cs
- SchemaImporter.cs
- ModelVisual3D.cs
- PropertyInformation.cs
- HttpApplicationFactory.cs
- ListenerUnsafeNativeMethods.cs
- ScrollEventArgs.cs
- XPathNavigatorKeyComparer.cs
- EntityKey.cs
- TextView.cs
- PrinterResolution.cs
- InternalConfigSettingsFactory.cs
- SelectorItemAutomationPeer.cs
- SignedInfo.cs
- DataSourceCacheDurationConverter.cs
- UpdatableGenericsFeature.cs
- DisplayClaim.cs
- __FastResourceComparer.cs
- DataGridViewImageCell.cs
- StylusPointPropertyInfo.cs
- XmlQueryContext.cs
- RegexWriter.cs
- ModelPropertyImpl.cs
- ParserContext.cs
- WebPartMovingEventArgs.cs
- TransformerInfo.cs
- RootBrowserWindowAutomationPeer.cs
- OLEDB_Util.cs
- FormClosedEvent.cs
- OracleParameterCollection.cs
- dbdatarecord.cs
- HotCommands.cs
- ChangeProcessor.cs
- DateTimeSerializationSection.cs
- XmlSchemaDocumentation.cs
- XPathNode.cs
- Membership.cs
- TrueReadOnlyCollection.cs
- CancellationTokenRegistration.cs
- FaultContext.cs
- SrgsElementFactory.cs
- FixedSOMElement.cs
- VideoDrawing.cs
- SqlDataRecord.cs
- SqlRewriteScalarSubqueries.cs
- ObjectStorage.cs
- RecordConverter.cs
- StringValueConverter.cs
- IBuiltInEvidence.cs
- TimeZoneNotFoundException.cs
- WSTrust.cs
- LinqDataSourceHelper.cs
- DragStartedEventArgs.cs
- BypassElement.cs
- KnownTypeAttribute.cs
- SafeLocalMemHandle.cs
- SyndicationDeserializer.cs
- VoiceChangeEventArgs.cs
- DataColumnMapping.cs
- QuestionEventArgs.cs
- GridProviderWrapper.cs
- SystemIcmpV4Statistics.cs
- FixedElement.cs
- GridViewAutomationPeer.cs