Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Messaging / System / Messaging / Design / MessageQueueConverter.cs / 1305376 / MessageQueueConverter.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; using System.Diagnostics; using System; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; using System.Windows.Forms.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Messaging.Interop; using System.Collections; using System.Collections.Specialized; using System.Globalization; ////// internal class MessageQueueConverter : TypeConverter { private static Hashtable componentsCreated = new Hashtable(StringComparer.InvariantCultureIgnoreCase); /// /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return base.CanConvertFrom(context, sourceType); } internal static void AddToCache(MessageQueue queue) { componentsCreated[queue.Path] = queue; } /// /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null && value is string) { string text = ((string)value).Trim(); if (text == String.Empty) return null; if (text.CompareTo(Res.GetString(Res.NotSet)) != 0) { MessageQueue newQueue = GetFromCache(text); if (newQueue != null) return newQueue; else { newQueue = new MessageQueue(text); AddToCache(newQueue); if (context != null) context.Container.Add(newQueue); return newQueue; } } } return null; } /// /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && destinationType == typeof(string)) { if (value != null) return((MessageQueue)value).Path; else return Res.GetString(Res.NotSet); } return base.ConvertTo(context, culture, value, destinationType); } internal static MessageQueue GetFromCache(string path) { if (componentsCreated.ContainsKey(path)) { MessageQueue existingComponent = (MessageQueue)componentsCreated[path]; if (existingComponent.Site == null) componentsCreated.Remove(path); else { if (existingComponent.Path == path) return existingComponent; else componentsCreated.Remove(path); } } return null; } } } // 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; using System.Diagnostics; using System; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; using System.Windows.Forms.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Messaging.Interop; using System.Collections; using System.Collections.Specialized; using System.Globalization; ////// internal class MessageQueueConverter : TypeConverter { private static Hashtable componentsCreated = new Hashtable(StringComparer.InvariantCultureIgnoreCase); /// /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return base.CanConvertFrom(context, sourceType); } internal static void AddToCache(MessageQueue queue) { componentsCreated[queue.Path] = queue; } /// /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null && value is string) { string text = ((string)value).Trim(); if (text == String.Empty) return null; if (text.CompareTo(Res.GetString(Res.NotSet)) != 0) { MessageQueue newQueue = GetFromCache(text); if (newQueue != null) return newQueue; else { newQueue = new MessageQueue(text); AddToCache(newQueue); if (context != null) context.Container.Add(newQueue); return newQueue; } } } return null; } /// /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && destinationType == typeof(string)) { if (value != null) return((MessageQueue)value).Path; else return Res.GetString(Res.NotSet); } return base.ConvertTo(context, culture, value, destinationType); } internal static MessageQueue GetFromCache(string path) { if (componentsCreated.ContainsKey(path)) { MessageQueue existingComponent = (MessageQueue)componentsCreated[path]; if (existingComponent.Site == null) componentsCreated.Remove(path); else { if (existingComponent.Path == path) return existingComponent; else componentsCreated.Remove(path); } } return null; } } } // 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
- MethodBuilderInstantiation.cs
- AvTraceDetails.cs
- SiteMapPath.cs
- QuerySubExprEliminator.cs
- commandenforcer.cs
- CardSpaceSelector.cs
- KeyValuePair.cs
- AssertFilter.cs
- DispatcherExceptionFilterEventArgs.cs
- XmlSchemaSequence.cs
- FrameworkReadOnlyPropertyMetadata.cs
- EntryPointNotFoundException.cs
- DateTimeOffsetConverter.cs
- DeadCharTextComposition.cs
- ProtectedProviderSettings.cs
- XDeferredAxisSource.cs
- OpenTypeLayout.cs
- SqlDataSourceQuery.cs
- WindowsImpersonationContext.cs
- GridToolTip.cs
- DataContract.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ContourSegment.cs
- IsolatedStoragePermission.cs
- GuidelineSet.cs
- ObjectDataSourceFilteringEventArgs.cs
- BStrWrapper.cs
- RowCache.cs
- SmtpCommands.cs
- TextBoxBase.cs
- FloaterParagraph.cs
- WebServicesInteroperability.cs
- EnvelopedPkcs7.cs
- GridViewUpdateEventArgs.cs
- ConnectivityStatus.cs
- HotSpot.cs
- TreeNodeStyleCollection.cs
- IdentityHolder.cs
- DeviceContext2.cs
- LayoutSettings.cs
- TouchFrameEventArgs.cs
- CommandDevice.cs
- ChangePassword.cs
- SamlAuthorityBinding.cs
- BlockUIContainer.cs
- UIElementParaClient.cs
- TextMessageEncodingElement.cs
- XsdCachingReader.cs
- QueueNameHelper.cs
- Solver.cs
- XDRSchema.cs
- ComponentResourceKey.cs
- _UncName.cs
- JoinCqlBlock.cs
- METAHEADER.cs
- DtdParser.cs
- GridViewEditEventArgs.cs
- CodeTypeConstructor.cs
- AnchoredBlock.cs
- MetadataProperty.cs
- ExpressionNormalizer.cs
- CallSite.cs
- HierarchicalDataSourceControl.cs
- SafeLibraryHandle.cs
- AsyncOperation.cs
- SystemKeyConverter.cs
- PassportAuthenticationEventArgs.cs
- indexingfiltermarshaler.cs
- SafeArrayRankMismatchException.cs
- TableCell.cs
- Range.cs
- DeviceContext2.cs
- TagPrefixCollection.cs
- DataGridViewUtilities.cs
- wgx_sdk_version.cs
- GroupLabel.cs
- EntityProxyFactory.cs
- HScrollBar.cs
- StrictAndMessageFilter.cs
- DefaultDialogButtons.cs
- WebBrowserNavigatingEventHandler.cs
- ListenerTraceUtility.cs
- Command.cs
- ConsoleCancelEventArgs.cs
- ForAllOperator.cs
- EmptyEnumerable.cs
- sqlpipe.cs
- TemplatePropertyEntry.cs
- DateTimeConstantAttribute.cs
- MultipleCopiesCollection.cs
- StrongNameHelpers.cs
- MemberCollection.cs
- MonikerHelper.cs
- DBConnection.cs
- BufferModesCollection.cs
- ErrorLog.cs
- ChildTable.cs
- PingOptions.cs
- DataBoundControl.cs
- RawStylusSystemGestureInputReport.cs