Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SimpleType.cs
- GlyphRun.cs
- XsltInput.cs
- MenuItemBinding.cs
- UITypeEditor.cs
- XmlAnyAttributeAttribute.cs
- TreeNode.cs
- _LocalDataStore.cs
- Logging.cs
- DataGridViewLinkCell.cs
- RankException.cs
- Int32AnimationBase.cs
- NativeMethods.cs
- ConfigurationManagerInternal.cs
- UpdateException.cs
- TypeRestriction.cs
- TreeNodeClickEventArgs.cs
- CodePageUtils.cs
- SoapExtensionReflector.cs
- DesignConnection.cs
- BitmapEffect.cs
- Condition.cs
- BreakRecordTable.cs
- SecurityDocument.cs
- OrderPreservingPipeliningMergeHelper.cs
- RpcResponse.cs
- SyndicationSerializer.cs
- RepeatBehaviorConverter.cs
- FtpWebResponse.cs
- QueryContinueDragEvent.cs
- WindowsToolbarItemAsMenuItem.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DataPagerFieldCommandEventArgs.cs
- nulltextnavigator.cs
- SelectionPattern.cs
- EmptyEnumerator.cs
- SourceFileBuildProvider.cs
- ISO2022Encoding.cs
- SharedPerformanceCounter.cs
- List.cs
- WebSysDescriptionAttribute.cs
- ListView.cs
- MouseBinding.cs
- InstanceCreationEditor.cs
- MessageVersionConverter.cs
- EnumCodeDomSerializer.cs
- PathSegmentCollection.cs
- MobilePage.cs
- ThemeDirectoryCompiler.cs
- PenThreadPool.cs
- HtmlInputText.cs
- BitStack.cs
- Visual.cs
- ProxyHwnd.cs
- LoginNameDesigner.cs
- ExtenderProviderService.cs
- ConnectionManagementSection.cs
- NestedContainer.cs
- CompModSwitches.cs
- RNGCryptoServiceProvider.cs
- FixedNode.cs
- DataServiceQueryContinuation.cs
- DBAsyncResult.cs
- WindowsSolidBrush.cs
- DocumentReference.cs
- GridViewUpdatedEventArgs.cs
- FileChangesMonitor.cs
- Win32PrintDialog.cs
- StrongNamePublicKeyBlob.cs
- TransactionTraceIdentifier.cs
- ImageAnimator.cs
- AbandonedMutexException.cs
- StrongNameUtility.cs
- contentDescriptor.cs
- DesignUtil.cs
- WebControlParameterProxy.cs
- ListViewUpdateEventArgs.cs
- DelegatedStream.cs
- ToolConsole.cs
- InkCanvasFeedbackAdorner.cs
- Size.cs
- DbMetaDataFactory.cs
- ContentValidator.cs
- COM2EnumConverter.cs
- PhysicalFontFamily.cs
- HostedTransportConfigurationBase.cs
- HttpRuntime.cs
- oledbmetadatacollectionnames.cs
- ThreadStartException.cs
- CapabilitiesRule.cs
- UrlPropertyAttribute.cs
- CodeNamespaceCollection.cs
- LineProperties.cs
- XsltContext.cs
- WbemException.cs
- ChannelBinding.cs
- CalendarDesigner.cs
- PKCS1MaskGenerationMethod.cs
- IconHelper.cs
- TextServicesLoader.cs