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
- TextBox.cs
- XmlQuerySequence.cs
- ResourceSet.cs
- ParameterElement.cs
- ProxyWebPart.cs
- DataSourceView.cs
- HashStream.cs
- CharacterHit.cs
- MissingFieldException.cs
- Material.cs
- EmbeddedMailObjectCollectionEditor.cs
- EventProxy.cs
- StringReader.cs
- shaperfactoryquerycachekey.cs
- ExtendedPropertyCollection.cs
- CookieParameter.cs
- PathFigureCollectionConverter.cs
- SQLConvert.cs
- ContextDataSource.cs
- HelpProvider.cs
- WebPermission.cs
- StateManagedCollection.cs
- EmptyReadOnlyDictionaryInternal.cs
- xsdvalidator.cs
- XamlPathDataSerializer.cs
- ServiceContractAttribute.cs
- Transform.cs
- MenuAdapter.cs
- TransportConfigurationTypeElementCollection.cs
- PlainXmlDeserializer.cs
- UnsafeMethods.cs
- DataGridViewButtonCell.cs
- MaterialGroup.cs
- Module.cs
- ReturnType.cs
- columnmapkeybuilder.cs
- MediaCommands.cs
- PropertyToken.cs
- UnsafeNativeMethods.cs
- HttpClientCertificate.cs
- COSERVERINFO.cs
- XmlWrappingReader.cs
- DbConnectionPool.cs
- ReliableMessagingHelpers.cs
- SqlParameterCollection.cs
- ComPlusThreadInitializer.cs
- BufferedGraphicsContext.cs
- DynamicDiscoveryDocument.cs
- FloaterBaseParaClient.cs
- TextParagraphView.cs
- FormattedText.cs
- CultureSpecificStringDictionary.cs
- MachineKeyConverter.cs
- TextRangeAdaptor.cs
- ExceptionRoutedEventArgs.cs
- IgnorePropertiesAttribute.cs
- UInt16.cs
- FolderBrowserDialog.cs
- EntityDataSourceWizardForm.cs
- ToolStripLocationCancelEventArgs.cs
- ProfilePropertySettings.cs
- JsonReader.cs
- ClientOptions.cs
- MembershipUser.cs
- ServiceModelPerformanceCounters.cs
- HtmlEmptyTagControlBuilder.cs
- EmptyQuery.cs
- PostBackTrigger.cs
- WebPartVerbCollection.cs
- HttpRequestTraceRecord.cs
- ResolveCriteriaApril2005.cs
- ParagraphResult.cs
- GridViewItemAutomationPeer.cs
- BinHexEncoder.cs
- ScriptReferenceEventArgs.cs
- MainMenu.cs
- StylesEditorDialog.cs
- EventMappingSettingsCollection.cs
- EncoderParameters.cs
- RenderOptions.cs
- SchemaType.cs
- ConfigurationValidatorAttribute.cs
- SelectionGlyphBase.cs
- HwndSourceKeyboardInputSite.cs
- ErrorStyle.cs
- ZipFileInfoCollection.cs
- StringKeyFrameCollection.cs
- XmlFormatExtensionPrefixAttribute.cs
- HotSpotCollection.cs
- InputScopeConverter.cs
- TextControl.cs
- WindowsSecurityToken.cs
- LayoutEvent.cs
- ScrollPattern.cs
- BasicHttpBindingCollectionElement.cs
- XmlResolver.cs
- DesignerValidationSummaryAdapter.cs
- CheckedListBox.cs
- ParsedAttributeCollection.cs
- SystemUdpStatistics.cs