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
- SmtpClient.cs
- HtmlAnchor.cs
- URLAttribute.cs
- CustomValidator.cs
- HealthMonitoringSection.cs
- SiteMapNodeItem.cs
- DbExpressionVisitor_TResultType.cs
- Int32Animation.cs
- CacheSection.cs
- Roles.cs
- PersistenceMetadataNamespace.cs
- UIElementCollection.cs
- DesignerProperties.cs
- UInt64Converter.cs
- TemplatePartAttribute.cs
- ValidationEventArgs.cs
- TemplateLookupAction.cs
- WmpBitmapEncoder.cs
- Literal.cs
- FaultReasonText.cs
- DrawItemEvent.cs
- input.cs
- FontSizeConverter.cs
- RepeatInfo.cs
- EmbossBitmapEffect.cs
- VerificationException.cs
- StylusEventArgs.cs
- _KerberosClient.cs
- CallId.cs
- XmlSerializableServices.cs
- RectAnimationUsingKeyFrames.cs
- ManipulationLogic.cs
- DataKeyArray.cs
- XmlRootAttribute.cs
- AttributeEmitter.cs
- TableSectionStyle.cs
- SequenceDesigner.cs
- Int16KeyFrameCollection.cs
- OleAutBinder.cs
- HttpListenerResponse.cs
- Axis.cs
- TransformerInfoCollection.cs
- AttributeCallbackBuilder.cs
- ExpressionVisitor.cs
- MetadataAssemblyHelper.cs
- WebConvert.cs
- TextRunCache.cs
- LocalizationComments.cs
- WorkflowMarkupSerializationProvider.cs
- JournalEntryStack.cs
- SplashScreen.cs
- SecurityHelper.cs
- UncommonField.cs
- Condition.cs
- DesignerActionUI.cs
- DataColumnMapping.cs
- XmlSchemaCollection.cs
- ThreadStateException.cs
- SHA256CryptoServiceProvider.cs
- PrePrepareMethodAttribute.cs
- ApplicationBuildProvider.cs
- XamlInt32CollectionSerializer.cs
- DesignTable.cs
- ActivationServices.cs
- AssemblyAssociatedContentFileAttribute.cs
- GridViewPageEventArgs.cs
- HandlerFactoryWrapper.cs
- FileDetails.cs
- ColorDialog.cs
- PasswordBox.cs
- SizeAnimationUsingKeyFrames.cs
- ChameleonKey.cs
- StringSorter.cs
- ResourcePermissionBaseEntry.cs
- HttpListener.cs
- remotingproxy.cs
- CustomAttributeSerializer.cs
- BitmapEffectGeneralTransform.cs
- Int32AnimationUsingKeyFrames.cs
- PenThread.cs
- PolicyStatement.cs
- XPathNodeHelper.cs
- StylusOverProperty.cs
- ClrProviderManifest.cs
- AssociationSet.cs
- ConfigurationElement.cs
- Utils.cs
- VectorValueSerializer.cs
- Utils.cs
- APCustomTypeDescriptor.cs
- TargetPerspective.cs
- EntityDataSourceContextCreatedEventArgs.cs
- HitTestWithPointDrawingContextWalker.cs
- LineSegment.cs
- URIFormatException.cs
- Attribute.cs
- EventMappingSettings.cs
- BasicViewGenerator.cs
- MatchingStyle.cs
- OdbcEnvironmentHandle.cs