Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / ObjectLayer / KnownAssembliesSet.cs / 1305376 / KnownAssembliesSet.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Linq; using System.Reflection; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// This class is responsible for keeping track of which assemblies we have already /// considered so we don't reconsider them again. /// /// The current rules for an assembly to be "seen" is /// 1. It is already in our dictionary /// AND /// 1. We are in attribute loading mode /// OR /// 2. We have seen it already with a non null EdmItemCollection /// OR /// 3. We are seeing it with a null EdmItemCollection this time /// internal class KnownAssembliesSet { private Dictionary_assemblies; internal KnownAssembliesSet() { _assemblies = new Dictionary (); } internal KnownAssembliesSet(KnownAssembliesSet set) { _assemblies = new Dictionary (set._assemblies); } internal bool TryGetKnownAssembly(Assembly assembly, object loaderCookie, EdmItemCollection itemCollection, out KnownAssemblyEntry entry) { if (!_assemblies.TryGetValue(assembly, out entry)) { return false; } if (!entry.HaveSeenInCompatibleContext(loaderCookie, itemCollection)) { return false; } return true; } internal IEnumerable Assemblies { get { return _assemblies.Keys; } } public IEnumerable GetEntries(object loaderCookie, EdmItemCollection itemCollection) { return _assemblies.Values.Where(e => e.HaveSeenInCompatibleContext(loaderCookie, itemCollection)); } internal bool Contains(Assembly assembly, object loaderCookie, EdmItemCollection itemCollection) { KnownAssemblyEntry entry; return TryGetKnownAssembly(assembly, loaderCookie, itemCollection, out entry); } internal void Add(Assembly assembly, KnownAssemblyEntry knownAssemblyEntry) { KnownAssemblyEntry current; if (_assemblies.TryGetValue(assembly, out current)) { Debug.Assert(current.SeenWithEdmItemCollection != knownAssemblyEntry.SeenWithEdmItemCollection && knownAssemblyEntry.SeenWithEdmItemCollection, "should only be updating if we haven't seen it with an edmItemCollection yet."); _assemblies[assembly] = knownAssemblyEntry; } else { _assemblies.Add(assembly, knownAssemblyEntry); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TitleStyle.cs
- ConnectivityStatus.cs
- ExplicitDiscriminatorMap.cs
- HideDisabledControlAdapter.cs
- DataGridColumnsPage.cs
- CapabilitiesPattern.cs
- DbProviderFactories.cs
- ColumnWidthChangedEvent.cs
- LeafCellTreeNode.cs
- ConnectionInterfaceCollection.cs
- StickyNoteHelper.cs
- ToolStripSeparator.cs
- DataSetSchema.cs
- BackStopAuthenticationModule.cs
- ClientConfigurationSystem.cs
- DropSource.cs
- Rect.cs
- SortedSet.cs
- ToolBar.cs
- Documentation.cs
- PrimaryKeyTypeConverter.cs
- ComplexBindingPropertiesAttribute.cs
- EventListenerClientSide.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DesignRelation.cs
- CFGGrammar.cs
- LinkArea.cs
- DbConnectionPoolCounters.cs
- COM2Enum.cs
- ObjectItemNoOpAssemblyLoader.cs
- DataControlField.cs
- ValidationErrorInfo.cs
- FileCodeGroup.cs
- LogSwitch.cs
- Line.cs
- QueryPageSettingsEventArgs.cs
- SelectionGlyphBase.cs
- CompilerTypeWithParams.cs
- _LoggingObject.cs
- DataContract.cs
- IPAddress.cs
- EnglishPluralizationService.cs
- SQLBytes.cs
- BigInt.cs
- UnmanagedMemoryStream.cs
- ControlEvent.cs
- ByteStreamBufferedMessageData.cs
- TouchFrameEventArgs.cs
- SchemaImporterExtensionsSection.cs
- SiteMapPath.cs
- ProfileSection.cs
- MsmqInputMessage.cs
- CapabilitiesState.cs
- ICspAsymmetricAlgorithm.cs
- FormViewCommandEventArgs.cs
- ArraySet.cs
- ContainerParagraph.cs
- CompositionAdorner.cs
- RegexStringValidatorAttribute.cs
- UpdatableWrapper.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- SessionState.cs
- PropertyConverter.cs
- TrustManager.cs
- SamlDoNotCacheCondition.cs
- ByteFacetDescriptionElement.cs
- DurableInstancingOptions.cs
- BorderGapMaskConverter.cs
- RegexReplacement.cs
- SetterBase.cs
- BamlReader.cs
- ActivityWithResultWrapper.cs
- GifBitmapEncoder.cs
- Baml2006SchemaContext.cs
- ContainerActivationHelper.cs
- InputEventArgs.cs
- SiteMap.cs
- HtmlInputButton.cs
- PeerDefaultCustomResolverClient.cs
- HtmlImage.cs
- XhtmlBasicFormAdapter.cs
- DBParameter.cs
- ReferencedCollectionType.cs
- TableItemProviderWrapper.cs
- MaterialGroup.cs
- HWStack.cs
- DataContractJsonSerializer.cs
- ProgressiveCrcCalculatingStream.cs
- SafeFileMappingHandle.cs
- VisualStyleElement.cs
- EncodingTable.cs
- JobDuplex.cs
- TraceHandlerErrorFormatter.cs
- ListItemConverter.cs
- CheckPair.cs
- RequestUriProcessor.cs
- AssociationTypeEmitter.cs
- BitmapCodecInfoInternal.cs
- cookiecollection.cs
- Opcode.cs