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
- XmlDictionaryWriter.cs
- OutputCacheProfileCollection.cs
- CssStyleCollection.cs
- PhonemeEventArgs.cs
- EventSinkActivityDesigner.cs
- SoapIncludeAttribute.cs
- FileVersionInfo.cs
- SQLMembershipProvider.cs
- TraceHandlerErrorFormatter.cs
- ParallelQuery.cs
- RootCodeDomSerializer.cs
- EdmType.cs
- RootContext.cs
- OdbcConnectionFactory.cs
- XComponentModel.cs
- CustomWebEventKey.cs
- CryptoKeySecurity.cs
- IntegerFacetDescriptionElement.cs
- SetStateDesigner.cs
- OleDbWrapper.cs
- ListBox.cs
- DbParameterCollectionHelper.cs
- ElasticEase.cs
- ComboBoxItem.cs
- MetadataException.cs
- MethodRental.cs
- XmlSchemaAnyAttribute.cs
- GenericPrincipal.cs
- MultipartContentParser.cs
- PerformanceCounterPermissionEntry.cs
- CultureInfo.cs
- XmlSchemaElement.cs
- Reference.cs
- WinEventTracker.cs
- XamlStyleSerializer.cs
- Monitor.cs
- ZipIOLocalFileBlock.cs
- FontEmbeddingManager.cs
- TreeNodeStyleCollectionEditor.cs
- HashCodeCombiner.cs
- ExceptionUtil.cs
- XsdDateTime.cs
- GeneralTransform.cs
- TreeIterator.cs
- EntityCommandExecutionException.cs
- SqlDataSourceDesigner.cs
- dbenumerator.cs
- SqlWorkflowInstanceStoreLock.cs
- HttpCacheVaryByContentEncodings.cs
- SchemaImporterExtension.cs
- Rotation3DAnimationUsingKeyFrames.cs
- DescendantQuery.cs
- DefaultValueConverter.cs
- OdbcConnectionOpen.cs
- TextElement.cs
- XPathExpr.cs
- MetadataArtifactLoaderCompositeResource.cs
- TableColumnCollection.cs
- BaseCodePageEncoding.cs
- GeneralTransform3DGroup.cs
- DefaultProxySection.cs
- Semaphore.cs
- PageBuildProvider.cs
- ButtonStandardAdapter.cs
- DllNotFoundException.cs
- ReadOnlyObservableCollection.cs
- SecurityCredentialsManager.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- RoleManagerModule.cs
- ContextMenu.cs
- XmlElement.cs
- DragDeltaEventArgs.cs
- MSAAWinEventWrap.cs
- WebControlParameterProxy.cs
- ControlBuilder.cs
- TimerElapsedEvenArgs.cs
- CaseKeyBox.xaml.cs
- SafeThreadHandle.cs
- Size.cs
- HtmlDocument.cs
- EncryptedPackageFilter.cs
- EntityDataSourceSelectingEventArgs.cs
- NameHandler.cs
- XNodeValidator.cs
- ObjectStorage.cs
- SystemFonts.cs
- DesignerAttributeInfo.cs
- WebPartZoneBase.cs
- HttpServerUtilityWrapper.cs
- MemberHolder.cs
- ConfigDefinitionUpdates.cs
- HttpHandlerAction.cs
- DataColumnSelectionConverter.cs
- EntityViewContainer.cs
- DataGridSortCommandEventArgs.cs
- TextBounds.cs
- CreateUserWizard.cs
- Message.cs
- MemoryStream.cs
- FactoryGenerator.cs