Code:
/ FX-1434 / FX-1434 / 1.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
- XmlToDatasetMap.cs
- TypedAsyncResult.cs
- CodeVariableDeclarationStatement.cs
- HtmlControl.cs
- ZipIOLocalFileHeader.cs
- ListViewItemSelectionChangedEvent.cs
- Registry.cs
- Stack.cs
- WebPartConnectionCollection.cs
- WebPartConnectionsDisconnectVerb.cs
- UnsafeNativeMethods.cs
- XmlHierarchicalEnumerable.cs
- Translator.cs
- FileUtil.cs
- CultureData.cs
- SessionIDManager.cs
- TableCell.cs
- OracleNumber.cs
- SqlDataAdapter.cs
- HealthMonitoringSection.cs
- ColumnClickEvent.cs
- MetafileHeaderWmf.cs
- CommonProperties.cs
- XamlToRtfWriter.cs
- CustomPeerResolverService.cs
- TypeConverterHelper.cs
- EventDescriptor.cs
- TakeQueryOptionExpression.cs
- DPTypeDescriptorContext.cs
- RuntimeArgumentHandle.cs
- ReverseQueryOperator.cs
- DispatcherTimer.cs
- ExpressionBindingCollection.cs
- AnnotationStore.cs
- ConstructorBuilder.cs
- RemotingConfiguration.cs
- NavigationPropertySingletonExpression.cs
- QilCloneVisitor.cs
- ProcessInfo.cs
- DoubleAnimationUsingPath.cs
- ConfigXmlElement.cs
- MenuItem.cs
- BitmapEffectrendercontext.cs
- NodeLabelEditEvent.cs
- BitArray.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SecurityProtocolFactory.cs
- SeverityFilter.cs
- ObjectDataSourceFilteringEventArgs.cs
- CommandID.cs
- ConfigurationErrorsException.cs
- HtmlElementEventArgs.cs
- InheritanceContextHelper.cs
- BufferedResponseStream.cs
- PhonemeEventArgs.cs
- Mouse.cs
- Signature.cs
- ProfilePropertyNameValidator.cs
- LayoutEvent.cs
- EdmToObjectNamespaceMap.cs
- DataColumnChangeEvent.cs
- Transactions.cs
- QueueProcessor.cs
- SecurityPermission.cs
- ActionFrame.cs
- ExpressionVisitor.cs
- ComplexBindingPropertiesAttribute.cs
- XmlDeclaration.cs
- FormViewInsertedEventArgs.cs
- ElapsedEventArgs.cs
- OdbcDataReader.cs
- XmlSchemaFacet.cs
- DrawListViewSubItemEventArgs.cs
- Configuration.cs
- CustomValidator.cs
- CategoryGridEntry.cs
- PublishLicense.cs
- Model3DGroup.cs
- TextModifierScope.cs
- SafeHandles.cs
- SystemThemeKey.cs
- WebPartHelpVerb.cs
- Block.cs
- XmlTextEncoder.cs
- DocumentViewerConstants.cs
- QilGenerator.cs
- Simplifier.cs
- SingleObjectCollection.cs
- ExpressionBindingCollection.cs
- Activity.cs
- ConnectionConsumerAttribute.cs
- InternalConfigEventArgs.cs
- ConfigXmlText.cs
- QueryCursorEventArgs.cs
- ReaderWriterLock.cs
- SecurityDocument.cs
- fixedPageContentExtractor.cs
- SortedList.cs
- ImageFormat.cs
- ReadingWritingEntityEventArgs.cs