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
- IgnoreSectionHandler.cs
- Vector3D.cs
- MultiView.cs
- DiagnosticsConfigurationHandler.cs
- DataGridViewRow.cs
- NativeBuffer.cs
- WaitHandleCannotBeOpenedException.cs
- XmlBinaryReaderSession.cs
- GeneralTransform2DTo3D.cs
- XPathSelfQuery.cs
- PriorityBindingExpression.cs
- BamlLocalizableResource.cs
- LookupNode.cs
- TableParagraph.cs
- WebPartTransformer.cs
- BitVector32.cs
- XmlSchemaObjectCollection.cs
- MessageTraceRecord.cs
- CryptoProvider.cs
- LayoutManager.cs
- VisualBrush.cs
- OutgoingWebRequestContext.cs
- HtmlHead.cs
- documentsequencetextcontainer.cs
- TimelineCollection.cs
- ToolStripDropTargetManager.cs
- ComboBox.cs
- SatelliteContractVersionAttribute.cs
- DrawingImage.cs
- CustomError.cs
- GenerateHelper.cs
- WebControlAdapter.cs
- WebPartEditorApplyVerb.cs
- ViewLoader.cs
- QilTernary.cs
- WorkflowRuntimeSection.cs
- SqlDependencyUtils.cs
- ReferentialConstraintRoleElement.cs
- CookieProtection.cs
- PerformanceCounterPermissionAttribute.cs
- UshortList2.cs
- TemplatePartAttribute.cs
- GroupItem.cs
- VisualTreeHelper.cs
- RoleManagerModule.cs
- QilSortKey.cs
- WindowsFormsHelpers.cs
- DES.cs
- DashStyle.cs
- EntityClassGenerator.cs
- TextBlock.cs
- ArrayElementGridEntry.cs
- ObjRef.cs
- AutomationElement.cs
- VectorValueSerializer.cs
- DirtyTextRange.cs
- DataGridViewRowStateChangedEventArgs.cs
- dataprotectionpermission.cs
- SingleResultAttribute.cs
- ColumnHeaderConverter.cs
- _AuthenticationState.cs
- InfoCardPolicy.cs
- DataKeyArray.cs
- StorageEndPropertyMapping.cs
- versioninfo.cs
- FatalException.cs
- TextEncodedRawTextWriter.cs
- ResourcePermissionBase.cs
- MemberDescriptor.cs
- SmiXetterAccessMap.cs
- PageThemeBuildProvider.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- EntityStoreSchemaGenerator.cs
- ThicknessKeyFrameCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- COM2Properties.cs
- MatrixKeyFrameCollection.cs
- Propagator.JoinPropagator.cs
- PrimitiveSchema.cs
- RangeContentEnumerator.cs
- Margins.cs
- RangeContentEnumerator.cs
- PeerContact.cs
- PixelFormats.cs
- PriorityRange.cs
- AmbientLight.cs
- WorkflowInstanceTerminatedRecord.cs
- UTF8Encoding.cs
- CommandBindingCollection.cs
- FormatterConverter.cs
- CodeNamespace.cs
- OleDbSchemaGuid.cs
- DataControlFieldCollection.cs
- DetailsViewDeletedEventArgs.cs
- TextTreeFixupNode.cs
- VersionedStreamOwner.cs
- FileSystemInfo.cs
- FormViewCommandEventArgs.cs
- QilVisitor.cs
- BooleanSwitch.cs