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
- PartitionResolver.cs
- TextStore.cs
- EventLogEntryCollection.cs
- RbTree.cs
- DataTablePropertyDescriptor.cs
- DockingAttribute.cs
- DataRowView.cs
- PropertyInfoSet.cs
- ThreadStateException.cs
- GatewayDefinition.cs
- TraceXPathNavigator.cs
- XMLDiffLoader.cs
- AlphabeticalEnumConverter.cs
- CompModSwitches.cs
- ColorAnimationBase.cs
- XsdDateTime.cs
- XmlImplementation.cs
- WebServiceParameterData.cs
- InfiniteIntConverter.cs
- ToolStripStatusLabel.cs
- XDRSchema.cs
- SchemaSetCompiler.cs
- IsolatedStorage.cs
- SystemWebExtensionsSectionGroup.cs
- AssemblyGen.cs
- DataRow.cs
- ImageListImageEditor.cs
- WindowsIdentity.cs
- FileDataSourceCache.cs
- SymmetricKeyWrap.cs
- TableCellsCollectionEditor.cs
- DataSysAttribute.cs
- SymbolEqualComparer.cs
- RequestNavigateEventArgs.cs
- DBNull.cs
- MDIClient.cs
- SynchronizationLockException.cs
- DataSourceCacheDurationConverter.cs
- mil_commands.cs
- CacheHelper.cs
- DataTableExtensions.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- StrokeCollectionConverter.cs
- SqlErrorCollection.cs
- Marshal.cs
- ThreadExceptionDialog.cs
- TabControlEvent.cs
- VirtualizingStackPanel.cs
- ContentPosition.cs
- PropertyValueChangedEvent.cs
- MenuItemBinding.cs
- RequestQueue.cs
- DBAsyncResult.cs
- CategoryGridEntry.cs
- brushes.cs
- SortKey.cs
- BinaryOperationBinder.cs
- XmlChoiceIdentifierAttribute.cs
- LogRestartAreaEnumerator.cs
- JsonEnumDataContract.cs
- BindingParameterCollection.cs
- DataServices.cs
- DataGridViewTopRowAccessibleObject.cs
- FixedSOMLineCollection.cs
- XmlTextReaderImpl.cs
- ExternalFile.cs
- DbMetaDataFactory.cs
- TimeSpanOrInfiniteValidator.cs
- Script.cs
- DataServiceConfiguration.cs
- SymbolEqualComparer.cs
- ExpressionList.cs
- TextTreeFixupNode.cs
- CodeValidator.cs
- shaperfactoryquerycachekey.cs
- AttachedAnnotation.cs
- StyleCollection.cs
- DocumentSchemaValidator.cs
- Rfc2898DeriveBytes.cs
- ViewGenResults.cs
- XmlQueryRuntime.cs
- Rule.cs
- ClassDataContract.cs
- ResourcesBuildProvider.cs
- XmlHierarchicalDataSourceView.cs
- TreeViewCancelEvent.cs
- RelatedCurrencyManager.cs
- QilChoice.cs
- AudioException.cs
- HorizontalAlignConverter.cs
- IndexingContentUnit.cs
- OletxDependentTransaction.cs
- ListViewContainer.cs
- WinFormsSpinner.cs
- ItemAutomationPeer.cs
- TextPattern.cs
- FixedDSBuilder.cs
- _CommandStream.cs
- ActivityExecutorOperation.cs
- PointCollectionValueSerializer.cs