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
- ScopedKnownTypes.cs
- FixedLineResult.cs
- VideoDrawing.cs
- GenerateHelper.cs
- QualificationDataItem.cs
- OdbcHandle.cs
- XamlTemplateSerializer.cs
- BinaryObjectWriter.cs
- SchemeSettingElementCollection.cs
- HyperLinkColumn.cs
- BezierSegment.cs
- GCHandleCookieTable.cs
- DynamicQueryableWrapper.cs
- FileSystemInfo.cs
- StringComparer.cs
- BamlRecordReader.cs
- UnknownBitmapDecoder.cs
- MatchingStyle.cs
- HtmlInputRadioButton.cs
- ExtensionElementCollection.cs
- OracleDataAdapter.cs
- TabItemAutomationPeer.cs
- TouchPoint.cs
- ZipIOModeEnforcingStream.cs
- SqlMetaData.cs
- SqlDeflator.cs
- HashRepartitionEnumerator.cs
- IndicFontClient.cs
- DictionarySectionHandler.cs
- LinkArea.cs
- AsyncStreamReader.cs
- LinqDataSourceInsertEventArgs.cs
- ExpressionLexer.cs
- RadioButtonAutomationPeer.cs
- EntityCollectionChangedParams.cs
- Equal.cs
- AttachedAnnotation.cs
- Error.cs
- NumericExpr.cs
- SecurityContextKeyIdentifierClause.cs
- FilterQuery.cs
- ProfileProvider.cs
- SecurityIdentifierConverter.cs
- Boolean.cs
- WindowsHyperlink.cs
- MenuItemStyleCollection.cs
- ConfigurationManagerInternalFactory.cs
- HtmlControlPersistable.cs
- Calendar.cs
- DSACryptoServiceProvider.cs
- ListViewUpdatedEventArgs.cs
- StrokeNodeData.cs
- NegatedCellConstant.cs
- ConfigurationLocationCollection.cs
- ObjectDataSourceFilteringEventArgs.cs
- HelpInfo.cs
- JumpPath.cs
- UnionExpr.cs
- OperationFormatter.cs
- Point4DConverter.cs
- Membership.cs
- Char.cs
- Oid.cs
- AlgoModule.cs
- TextLine.cs
- ConstraintConverter.cs
- PageHandlerFactory.cs
- TextStore.cs
- LookupNode.cs
- XmlSecureResolver.cs
- Setter.cs
- StringReader.cs
- TemplateBuilder.cs
- TableItemStyle.cs
- DataContext.cs
- DataGridViewTextBoxEditingControl.cs
- BitmapEncoder.cs
- BuildProvider.cs
- ComponentCodeDomSerializer.cs
- CommittableTransaction.cs
- SafeNativeMethods.cs
- WebServiceEnumData.cs
- Rect.cs
- SafeThreadHandle.cs
- MaskInputRejectedEventArgs.cs
- InputProcessorProfilesLoader.cs
- SiteMapSection.cs
- Ref.cs
- FixedSOMPageConstructor.cs
- _NestedMultipleAsyncResult.cs
- CompilationSection.cs
- DispatcherOperation.cs
- Figure.cs
- UnsafeNativeMethods.cs
- InternalConfigHost.cs
- AuthenticationService.cs
- Item.cs
- DirectoryInfo.cs
- MultipleViewProviderWrapper.cs
- FontStretchConverter.cs