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
- MouseDevice.cs
- HtmlPanelAdapter.cs
- ProfilePropertyNameValidator.cs
- FormViewDeleteEventArgs.cs
- GuidTagList.cs
- FixedSOMPage.cs
- IgnorePropertiesAttribute.cs
- PointLight.cs
- KnownTypeAttribute.cs
- View.cs
- StoreItemCollection.Loader.cs
- HwndProxyElementProvider.cs
- SystemWebSectionGroup.cs
- TimeEnumHelper.cs
- EllipseGeometry.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- IsolationInterop.cs
- SqlUserDefinedAggregateAttribute.cs
- ApplicationServiceHelper.cs
- Monitor.cs
- SoapElementAttribute.cs
- DataKey.cs
- LogRecordSequence.cs
- TemplateKey.cs
- safePerfProviderHandle.cs
- BmpBitmapEncoder.cs
- precedingquery.cs
- FusionWrap.cs
- UrlRoutingHandler.cs
- UrlMappingsSection.cs
- VScrollProperties.cs
- Tuple.cs
- Size3DValueSerializer.cs
- SendSecurityHeaderElement.cs
- Helpers.cs
- ModelPropertyDescriptor.cs
- SqlDataSourceView.cs
- PrePrepareMethodAttribute.cs
- PermissionSetEnumerator.cs
- HelpKeywordAttribute.cs
- XsdBuilder.cs
- ReversePositionQuery.cs
- StorageBasedPackageProperties.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DataGridViewHitTestInfo.cs
- DataGridBoolColumn.cs
- PeerTransportListenAddressConverter.cs
- FormsAuthenticationConfiguration.cs
- CodeNamespace.cs
- WebDescriptionAttribute.cs
- FirstQueryOperator.cs
- XamlRtfConverter.cs
- HtmlTextArea.cs
- HTTPAPI_VERSION.cs
- WebPartRestoreVerb.cs
- PageContent.cs
- DecoderBestFitFallback.cs
- SoapExtensionImporter.cs
- Grant.cs
- TransformPattern.cs
- SystemTcpStatistics.cs
- DeadCharTextComposition.cs
- IIS7UserPrincipal.cs
- XmlnsCompatibleWithAttribute.cs
- SignatureDescription.cs
- BackgroundFormatInfo.cs
- XmlArrayAttribute.cs
- SQLDecimal.cs
- diagnosticsswitches.cs
- XPathNodeIterator.cs
- SplitContainer.cs
- QueryOperationResponseOfT.cs
- XPathNavigatorException.cs
- DomNameTable.cs
- _UriSyntax.cs
- DragCompletedEventArgs.cs
- SignatureDescription.cs
- EventsTab.cs
- TextRangeAdaptor.cs
- ProjectionCamera.cs
- PeerNameResolver.cs
- CodeTypeParameter.cs
- CapabilitiesSection.cs
- Timeline.cs
- IpcChannel.cs
- UniqueIdentifierService.cs
- BuildManagerHost.cs
- SimpleWorkerRequest.cs
- ThumbAutomationPeer.cs
- DescendantOverDescendantQuery.cs
- TemplateParser.cs
- ObjectAssociationEndMapping.cs
- CustomCategoryAttribute.cs
- XmlSchemaAll.cs
- ipaddressinformationcollection.cs
- WebHttpElement.cs
- ProfileSettings.cs
- WebDisplayNameAttribute.cs
- CalculatedColumn.cs
- Number.cs