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
- WebSysDescriptionAttribute.cs
- Token.cs
- ParallelQuery.cs
- ScrollProviderWrapper.cs
- ImmutablePropertyDescriptorGridEntry.cs
- XmlSchemaChoice.cs
- EventToken.cs
- DefaultMergeHelper.cs
- DrawingAttributeSerializer.cs
- TextEditorTyping.cs
- EmptyControlCollection.cs
- Point3D.cs
- DecoderNLS.cs
- Validator.cs
- Constraint.cs
- InputGestureCollection.cs
- IdentityManager.cs
- DefaultTextStoreTextComposition.cs
- HtmlHead.cs
- ExecutionEngineException.cs
- FontSourceCollection.cs
- ItemsControl.cs
- AppDomain.cs
- SafeNativeMethods.cs
- ExpressionBuilder.cs
- LicenseException.cs
- CalendarTable.cs
- WebPartMovingEventArgs.cs
- SchemaDeclBase.cs
- LoadedOrUnloadedOperation.cs
- ClientRolePrincipal.cs
- ManagementDateTime.cs
- InheritanceAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- ADMembershipUser.cs
- AbstractExpressions.cs
- OdbcConnectionString.cs
- CheckedListBox.cs
- BitmapEffectRenderDataResource.cs
- KnownTypes.cs
- ConstraintStruct.cs
- SortKey.cs
- EntityTypeEmitter.cs
- Debug.cs
- SafeFindHandle.cs
- ListViewPagedDataSource.cs
- HitTestParameters3D.cs
- SamlAuthorizationDecisionClaimResource.cs
- WorkflowItemsPresenter.cs
- Splitter.cs
- CircleHotSpot.cs
- WindowsTitleBar.cs
- FtpWebResponse.cs
- BooleanConverter.cs
- ToolboxComponentsCreatingEventArgs.cs
- SqlCommandBuilder.cs
- SrgsToken.cs
- TogglePattern.cs
- MessageHeaderDescription.cs
- XmlAttributeAttribute.cs
- Marshal.cs
- DragSelectionMessageFilter.cs
- TreeNodeEventArgs.cs
- ColumnWidthChangingEvent.cs
- TextRangeEdit.cs
- WebPartCollection.cs
- QilTypeChecker.cs
- SmiContextFactory.cs
- HashMembershipCondition.cs
- RectAnimation.cs
- StringExpressionSet.cs
- CodeIdentifiers.cs
- ColumnMapVisitor.cs
- Mouse.cs
- XmlDataImplementation.cs
- WmlMobileTextWriter.cs
- UnmanagedBitmapWrapper.cs
- QilCloneVisitor.cs
- RC2.cs
- BamlBinaryReader.cs
- LogFlushAsyncResult.cs
- SslStream.cs
- CheckBoxRenderer.cs
- LocalizationParserHooks.cs
- TextRange.cs
- StickyNoteHelper.cs
- PolicyVersionConverter.cs
- ResourceProviderFactory.cs
- DesignerObjectListAdapter.cs
- ItemsChangedEventArgs.cs
- Repeater.cs
- CollectionChangeEventArgs.cs
- oledbconnectionstring.cs
- Thickness.cs
- BufferedWebEventProvider.cs
- SystemThemeKey.cs
- DataSourceBooleanViewSchemaConverter.cs
- XmlImplementation.cs
- SessionEndingEventArgs.cs
- ApplicationSettingsBase.cs