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
- WasHttpModulesInstallComponent.cs
- WebPartsPersonalizationAuthorization.cs
- InvokeWebServiceDesigner.cs
- LockRenewalTask.cs
- FileSystemInfo.cs
- ParameterExpression.cs
- CustomErrorCollection.cs
- DateTimeSerializationSection.cs
- WeakHashtable.cs
- SafeReversePInvokeHandle.cs
- Hashtable.cs
- DataColumnMappingCollection.cs
- DataGridViewRowStateChangedEventArgs.cs
- SelectedDatesCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- XmlSchemaComplexContentExtension.cs
- TemplatePropertyEntry.cs
- WebPartHeaderCloseVerb.cs
- FacetChecker.cs
- WebPartChrome.cs
- DataGridCellItemAutomationPeer.cs
- ModelTreeEnumerator.cs
- Int32AnimationUsingKeyFrames.cs
- CachedRequestParams.cs
- ResXDataNode.cs
- StrokeCollection2.cs
- CellRelation.cs
- PropertyGridEditorPart.cs
- Vector3DAnimationBase.cs
- Deserializer.cs
- Help.cs
- OperationAbortedException.cs
- PasswordRecovery.cs
- SymmetricKeyWrap.cs
- StreamUpdate.cs
- DeviceContexts.cs
- CommandPlan.cs
- BStrWrapper.cs
- SessionPageStateSection.cs
- HostingPreferredMapPath.cs
- BitmapEffectCollection.cs
- DataGridLinkButton.cs
- PropertyChangedEventManager.cs
- WorkflowPageSetupDialog.cs
- RowToFieldTransformer.cs
- _LocalDataStoreMgr.cs
- ComPlusServiceLoader.cs
- ComponentEditorPage.cs
- LessThanOrEqual.cs
- Query.cs
- TabControlAutomationPeer.cs
- SQLMoneyStorage.cs
- KeySpline.cs
- SystemTcpStatistics.cs
- InvalidAsynchronousStateException.cs
- RubberbandSelector.cs
- PassportAuthenticationEventArgs.cs
- ServicePointManagerElement.cs
- StateWorkerRequest.cs
- UserNameSecurityTokenAuthenticator.cs
- SignedInfo.cs
- CodeSubDirectory.cs
- DelimitedListTraceListener.cs
- DaylightTime.cs
- XamlReaderConstants.cs
- Codec.cs
- ResourcesChangeInfo.cs
- FontFamilyConverter.cs
- SerializationInfoEnumerator.cs
- ColorIndependentAnimationStorage.cs
- CategoryEditor.cs
- EnumConverter.cs
- NamedPipeAppDomainProtocolHandler.cs
- DataKeyArray.cs
- SiteOfOriginPart.cs
- PopupRoot.cs
- LambdaCompiler.Address.cs
- SoapReflector.cs
- TypeSystemProvider.cs
- XamlSerializerUtil.cs
- HtmlInputImage.cs
- ConfigurationPropertyAttribute.cs
- TraceSource.cs
- EncryptedPackage.cs
- unsafeIndexingFilterStream.cs
- SystemMulticastIPAddressInformation.cs
- TextParagraphProperties.cs
- PageContentCollection.cs
- GeneralTransformGroup.cs
- EdmFunctions.cs
- SByteStorage.cs
- WinFormsSpinner.cs
- CustomActivityDesigner.cs
- SafeProcessHandle.cs
- AdRotatorDesigner.cs
- XmlSignatureProperties.cs
- AuthenticateEventArgs.cs
- DataError.cs
- XPathDocumentNavigator.cs
- KeySplineConverter.cs