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
- DefaultProxySection.cs
- TextRangeEditTables.cs
- TimeManager.cs
- CharacterMetrics.cs
- WebPartDescriptionCollection.cs
- IgnoreSection.cs
- XPathQilFactory.cs
- StaticExtensionConverter.cs
- CryptoHelper.cs
- ReachPrintTicketSerializer.cs
- FunctionNode.cs
- TextFindEngine.cs
- DefaultParameterValueAttribute.cs
- TableItemPatternIdentifiers.cs
- XXXInfos.cs
- MouseActionValueSerializer.cs
- UserControlFileEditor.cs
- AsymmetricKeyExchangeFormatter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DataControlPagerLinkButton.cs
- SynchronizedKeyedCollection.cs
- CodeSpit.cs
- ObjectViewListener.cs
- EncryptedPackageFilter.cs
- RegularExpressionValidator.cs
- GridViewRow.cs
- FormViewDeletedEventArgs.cs
- EditorZone.cs
- Base64Encoder.cs
- LoginName.cs
- AutoGeneratedField.cs
- ExplicitDiscriminatorMap.cs
- FactoryGenerator.cs
- ExtenderControl.cs
- AnimationClockResource.cs
- DateTimeUtil.cs
- ObsoleteAttribute.cs
- SafeEventHandle.cs
- PKCS1MaskGenerationMethod.cs
- CodePropertyReferenceExpression.cs
- XmlSchemaNotation.cs
- InvalidDataContractException.cs
- ValuePatternIdentifiers.cs
- CreatingCookieEventArgs.cs
- CFStream.cs
- LineInfo.cs
- EventBookmark.cs
- ListContractAdapter.cs
- ColorConvertedBitmap.cs
- HandlerFactoryWrapper.cs
- MessageFilter.cs
- ExpressionPrinter.cs
- TemplateBuilder.cs
- RTLAwareMessageBox.cs
- CryptoApi.cs
- DatagridviewDisplayedBandsData.cs
- DataReceivedEventArgs.cs
- PassportPrincipal.cs
- DataControlImageButton.cs
- DesignBindingEditor.cs
- DataGridBoundColumn.cs
- ApplicationFileCodeDomTreeGenerator.cs
- BindingExpression.cs
- WindowsStatic.cs
- EntityCommand.cs
- EditorAttribute.cs
- WebBaseEventKeyComparer.cs
- TextControlDesigner.cs
- DefaultDiscoveryServiceExtension.cs
- MethodImplAttribute.cs
- XmlSchemaExporter.cs
- WinEventTracker.cs
- Propagator.ExtentPlaceholderCreator.cs
- PackageRelationshipCollection.cs
- XslAst.cs
- XmlReader.cs
- VerificationException.cs
- TargetException.cs
- TableHeaderCell.cs
- EdmPropertyAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- SqlFacetAttribute.cs
- DiscoveryMessageSequenceCD1.cs
- SubstitutionList.cs
- WebConfigurationHostFileChange.cs
- TdsParserStateObject.cs
- HttpResponseInternalWrapper.cs
- HtmlTitle.cs
- MaterialGroup.cs
- ComboBox.cs
- HoistedLocals.cs
- EmbeddedMailObjectsCollection.cs
- ObfuscateAssemblyAttribute.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- SafeProcessHandle.cs
- ConnectionPoint.cs
- ListItemCollection.cs
- ErrorInfoXmlDocument.cs
- ConnectionOrientedTransportManager.cs
- ParameterBuilder.cs