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
- _TLSstream.cs
- MailAddress.cs
- Schedule.cs
- DynamicUpdateCommand.cs
- DefaultBinder.cs
- DescendantOverDescendantQuery.cs
- SR.cs
- DetailsViewRow.cs
- Visitors.cs
- Debug.cs
- SequentialOutput.cs
- DisplayInformation.cs
- PathData.cs
- DataGridViewImageCell.cs
- LiteralText.cs
- FileSystemWatcher.cs
- UnionCodeGroup.cs
- ChangeBlockUndoRecord.cs
- SqlCaseSimplifier.cs
- DbConnectionPoolIdentity.cs
- SerializationInfo.cs
- AssertFilter.cs
- Receive.cs
- DrawingCollection.cs
- MessageAction.cs
- ExceptionUtil.cs
- GetWinFXPath.cs
- TextBoxView.cs
- HtmlInputRadioButton.cs
- TraceData.cs
- linebase.cs
- DefaultExpression.cs
- CharacterMetricsDictionary.cs
- _NetRes.cs
- MediaTimeline.cs
- XmlIncludeAttribute.cs
- HTMLTagNameToTypeMapper.cs
- TypedElement.cs
- ElementNotAvailableException.cs
- XmlSchemaImport.cs
- ScriptBehaviorDescriptor.cs
- UdpRetransmissionSettings.cs
- PlatformNotSupportedException.cs
- StylusCollection.cs
- safelinkcollection.cs
- WebPartDisplayModeEventArgs.cs
- CodeTypeMember.cs
- SqlConnectionHelper.cs
- WhereQueryOperator.cs
- BoundsDrawingContextWalker.cs
- MarshalByRefObject.cs
- Inline.cs
- IBuiltInEvidence.cs
- SingleConverter.cs
- PolicyManager.cs
- ProcessModule.cs
- SectionInformation.cs
- JsonReader.cs
- MembershipSection.cs
- Message.cs
- PageThemeCodeDomTreeGenerator.cs
- MarshalDirectiveException.cs
- SnapLine.cs
- SchemaComplexType.cs
- XmlToDatasetMap.cs
- ListViewItemSelectionChangedEvent.cs
- ValidationEventArgs.cs
- DBSchemaRow.cs
- VBCodeProvider.cs
- UpDownEvent.cs
- ReachBasicContext.cs
- RolePrincipal.cs
- ErrorFormatterPage.cs
- VBIdentifierNameEditor.cs
- RequestTimeoutManager.cs
- StylusOverProperty.cs
- SessionStateUtil.cs
- UnsafeNativeMethodsCLR.cs
- XmlAtomicValue.cs
- SecurityCriticalDataForSet.cs
- PropertyTabChangedEvent.cs
- figurelengthconverter.cs
- Executor.cs
- PathGeometry.cs
- AxImporter.cs
- WsdlBuildProvider.cs
- RuntimeWrappedException.cs
- CodeDomConfigurationHandler.cs
- WorkflowInlining.cs
- PersonalizationProviderCollection.cs
- QueryPageSettingsEventArgs.cs
- EntityDataSourceEntityTypeFilterItem.cs
- RegexCompiler.cs
- PersonalizationDictionary.cs
- BulletedListEventArgs.cs
- EventHandlerList.cs
- _ScatterGatherBuffers.cs
- PartialTrustVisibleAssemblyCollection.cs
- StringFormat.cs
- ItemsControl.cs