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
- FileDialog_Vista.cs
- System.Data_BID.cs
- RawStylusInputCustomData.cs
- AnnotationResource.cs
- MetadataItemEmitter.cs
- StickyNoteAnnotations.cs
- CorrelationScope.cs
- ThreadExceptionDialog.cs
- BinHexEncoding.cs
- ComponentRenameEvent.cs
- TextShapeableCharacters.cs
- StopStoryboard.cs
- DBCSCodePageEncoding.cs
- StringAttributeCollection.cs
- RefreshPropertiesAttribute.cs
- SqlDataSourceView.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- StylesEditorDialog.cs
- TextDpi.cs
- SizeConverter.cs
- EmptyStringExpandableObjectConverter.cs
- MouseButton.cs
- FastPropertyAccessor.cs
- SspiSafeHandles.cs
- ImageKeyConverter.cs
- DataControlFieldsEditor.cs
- ManagementExtension.cs
- VerificationException.cs
- FillRuleValidation.cs
- Executor.cs
- DocumentPage.cs
- TrustExchangeException.cs
- SoapIncludeAttribute.cs
- SqlXml.cs
- NameNode.cs
- Group.cs
- DataSpaceManager.cs
- CodeSubDirectoriesCollection.cs
- Vector3D.cs
- ConvertEvent.cs
- CodeGroup.cs
- Stylesheet.cs
- XPathScanner.cs
- WindowsTitleBar.cs
- SQLDateTime.cs
- Stackframe.cs
- MouseGestureConverter.cs
- DataGridViewIntLinkedList.cs
- MiniParameterInfo.cs
- XmlHierarchicalDataSourceView.cs
- CqlGenerator.cs
- Compilation.cs
- Single.cs
- LoopExpression.cs
- RtfControlWordInfo.cs
- IteratorFilter.cs
- OdbcDataAdapter.cs
- Span.cs
- SynchronizedDispatch.cs
- XmlILModule.cs
- HwndStylusInputProvider.cs
- SafeMILHandle.cs
- EdmMember.cs
- ObjectItemLoadingSessionData.cs
- ToolStripSeparatorRenderEventArgs.cs
- WindowsListViewItemCheckBox.cs
- ListViewItemCollectionEditor.cs
- StandardCommands.cs
- Control.cs
- ReferenceSchema.cs
- PackWebRequest.cs
- UnaryQueryOperator.cs
- ThemeInfoAttribute.cs
- ColorTranslator.cs
- SystemDropShadowChrome.cs
- TypeUsageBuilder.cs
- DiscoveryEndpointElement.cs
- LineBreak.cs
- TableCellsCollectionEditor.cs
- ExpressionConverter.cs
- ReflectEventDescriptor.cs
- WorkflowHostingEndpoint.cs
- XmlWrappingWriter.cs
- _LocalDataStoreMgr.cs
- SystemEvents.cs
- FindRequestContext.cs
- UnauthorizedAccessException.cs
- WebCategoryAttribute.cs
- SourceElementsCollection.cs
- EntityCommand.cs
- MouseEventArgs.cs
- TiffBitmapEncoder.cs
- DropTarget.cs
- HostedImpersonationContext.cs
- HWStack.cs
- CompositeControl.cs
- BindingRestrictions.cs
- InteropAutomationProvider.cs
- RelationshipConverter.cs
- ListViewGroup.cs