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
- WebConfigurationHost.cs
- _HeaderInfo.cs
- Menu.cs
- SaveFileDialog.cs
- TreeView.cs
- Cursor.cs
- ZipPackage.cs
- ReferenceSchema.cs
- CounterSampleCalculator.cs
- X509Certificate2Collection.cs
- TraceContext.cs
- AsymmetricAlgorithm.cs
- SlipBehavior.cs
- StorageMappingItemLoader.cs
- RegexFCD.cs
- IImplicitResourceProvider.cs
- AdapterDictionary.cs
- OracleConnectionFactory.cs
- MultipleViewPatternIdentifiers.cs
- ConstraintConverter.cs
- MenuBase.cs
- BaseDataBoundControlDesigner.cs
- CollectionViewGroupRoot.cs
- DBDataPermission.cs
- SinglePhaseEnlistment.cs
- TableColumnCollectionInternal.cs
- CodeCompileUnit.cs
- FontCacheLogic.cs
- mediapermission.cs
- InOutArgument.cs
- FrameworkElementFactory.cs
- SafeEventLogWriteHandle.cs
- TransformerTypeCollection.cs
- WindowsTitleBar.cs
- PersonalizationProviderHelper.cs
- ForceCopyBuildProvider.cs
- ChainedAsyncResult.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- SeekStoryboard.cs
- GradientStop.cs
- AsyncOperation.cs
- RealizationDrawingContextWalker.cs
- BackgroundWorker.cs
- SecurityToken.cs
- SecurityDescriptor.cs
- LayoutManager.cs
- SingleKeyFrameCollection.cs
- TemplatingOptionsDialog.cs
- Currency.cs
- tooltip.cs
- XmlSignificantWhitespace.cs
- UnsafeNativeMethods.cs
- AccessibilityApplicationManager.cs
- TypeReference.cs
- DynamicAttribute.cs
- ToolboxItem.cs
- PointAnimation.cs
- Int32AnimationBase.cs
- FrameAutomationPeer.cs
- DataGridViewToolTip.cs
- MetadataArtifactLoaderCompositeResource.cs
- DataServiceKeyAttribute.cs
- DoubleLinkList.cs
- StringTraceRecord.cs
- DataServiceOperationContext.cs
- StackOverflowException.cs
- CalendarButton.cs
- ApplicationInfo.cs
- XmlFormatWriterGenerator.cs
- XsltSettings.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- PreservationFileReader.cs
- RadialGradientBrush.cs
- TextTreePropertyUndoUnit.cs
- VariantWrapper.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- MemoryPressure.cs
- RoleServiceManager.cs
- ReplyChannelAcceptor.cs
- CodeLinePragma.cs
- DBDataPermissionAttribute.cs
- HttpApplicationStateWrapper.cs
- CodeIterationStatement.cs
- SplitterEvent.cs
- WebBrowserPermission.cs
- TypeSystem.cs
- TaskFactory.cs
- SplashScreen.cs
- UriParserTemplates.cs
- XmlDataContract.cs
- ConfigViewGenerator.cs
- BitmapEffectInputConnector.cs
- SHA1CryptoServiceProvider.cs
- DropDownButton.cs
- TypeElement.cs
- ChameleonKey.cs
- Serializer.cs
- XmlAttribute.cs
- PeerNameRegistration.cs
- GeneralTransformGroup.cs