Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / CompMod / System / ComponentModel / Design / Serialization / ExpressionTable.cs / 1 / ExpressionTable.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel.Design.Serialization { using Microsoft.CSharp; using System; using System.CodeDom; using System.CodeDom.Compiler; using System.Collections; using System.Diagnostics; using System.IO; ////// An expression table allows a lookup from expression to object and object to /// expression. It is similar to the serialization manager's GetName and GetInstance /// methods, only with rich code expressions. /// internal sealed class ExpressionTable { private Hashtable _expressions; private Hashtable Expressions { get { if (_expressions == null) { _expressions = new Hashtable(new ReferenceComparer()); } return _expressions; } } internal void SetExpression(object value, CodeExpression expression, bool isPreset) { Expressions[value] = new ExpressionInfo(expression, isPreset); } internal CodeExpression GetExpression(object value) { CodeExpression expression = null; ExpressionInfo info = Expressions[value] as ExpressionInfo; if (info != null) { expression = info.Expression; } return expression; } internal bool ContainsPresetExpression(object value) { ExpressionInfo info = Expressions[value] as ExpressionInfo; if (info != null) { return info.IsPreset; } else { return false; } } private class ExpressionInfo { CodeExpression _expression; bool _isPreset; internal ExpressionInfo(CodeExpression expression, bool isPreset) { _expression = expression; _isPreset = isPreset; } internal CodeExpression Expression { get { return _expression; } } internal bool IsPreset { get { return _isPreset; } } } private class ReferenceComparer : IEqualityComparer { bool IEqualityComparer.Equals(object x, object y) { return object.ReferenceEquals(x, y); } int IEqualityComparer.GetHashCode(object x) { if (x != null) { return x.GetHashCode(); } return 0; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AdapterDictionary.cs
- XmlReflectionMember.cs
- Privilege.cs
- UpdatePanel.cs
- SchemaEntity.cs
- JoinElimination.cs
- XmlDataDocument.cs
- DataGridViewCellStyleConverter.cs
- DependencyProperty.cs
- HitTestWithPointDrawingContextWalker.cs
- MouseActionConverter.cs
- Attachment.cs
- RepeatInfo.cs
- ParameterModifier.cs
- DetailsViewModeEventArgs.cs
- SHA512Managed.cs
- DbBuffer.cs
- RadioButtonBaseAdapter.cs
- xamlnodes.cs
- dbdatarecord.cs
- XsdBuilder.cs
- RtfToXamlLexer.cs
- ButtonPopupAdapter.cs
- MachineKeyConverter.cs
- ComponentConverter.cs
- CustomAssemblyResolver.cs
- HttpResponse.cs
- ProfileModule.cs
- FileNotFoundException.cs
- SlotInfo.cs
- WebPartZone.cs
- VectorCollectionConverter.cs
- SimpleWebHandlerParser.cs
- ComPlusServiceHost.cs
- XmlConverter.cs
- XmlnsDictionary.cs
- CommittableTransaction.cs
- DataGridTextBoxColumn.cs
- ViewStateChangedEventArgs.cs
- StoreItemCollection.cs
- XmlSchemaSet.cs
- NullEntityWrapper.cs
- ValidatingPropertiesEventArgs.cs
- StylusCollection.cs
- _Events.cs
- XamlInt32CollectionSerializer.cs
- SelectionProviderWrapper.cs
- HeaderedContentControl.cs
- ReferentialConstraint.cs
- MultiTrigger.cs
- ResourceExpression.cs
- SqlCrossApplyToCrossJoin.cs
- Int16Converter.cs
- Aggregates.cs
- StringComparer.cs
- ComponentEvent.cs
- SettingsAttributeDictionary.cs
- CapabilitiesUse.cs
- PathData.cs
- TableCell.cs
- ReliableMessagingVersionConverter.cs
- XPathNodeInfoAtom.cs
- IisTraceListener.cs
- PrintControllerWithStatusDialog.cs
- LineSegment.cs
- ConfigXmlElement.cs
- OpenFileDialog.cs
- ClientData.cs
- DataGridHeaderBorder.cs
- mongolianshape.cs
- SiteMembershipCondition.cs
- DBNull.cs
- DataRowChangeEvent.cs
- GroupStyle.cs
- GridEntryCollection.cs
- FilterElement.cs
- WorkflowTraceTransfer.cs
- RelativeSource.cs
- MimeParameters.cs
- HttpModulesSection.cs
- cookie.cs
- Pkcs9Attribute.cs
- SqlAliasesReferenced.cs
- SingleConverter.cs
- AdapterDictionary.cs
- EraserBehavior.cs
- RoleManagerModule.cs
- ModelVisual3D.cs
- MailWebEventProvider.cs
- TypeBuilderInstantiation.cs
- NonVisualControlAttribute.cs
- QEncodedStream.cs
- RouteData.cs
- FirstMatchCodeGroup.cs
- RegexWorker.cs
- ContextMenuStripGroup.cs
- TemplateDefinition.cs
- SiteMapDataSource.cs
- XmlLanguageConverter.cs
- DataSvcMapFile.cs