Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / safelink.cs / 1305376 / safelink.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //---------------------------------------------------------------------using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace System.Data.Metadata.Edm { internal class SafeLinkwhere TParent : class { private TParent _value; public TParent Value { get { return _value; } } internal static IEnumerable BindChildren (TParent parent, Func > getLink, IEnumerable children) { foreach (TChild child in children) { BindChild(parent, getLink, child); } return children; } internal static TChild BindChild (TParent parent, Func > getLink, TChild child) { SafeLink link = getLink(child); Debug.Assert(link._value == null || link._value == parent, "don't try to hook up the same child to a different parent"); // this is the good stuff.. // only this method can actually make the link since _value is a private link._value = parent; return child; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //---------------------------------------------------------------------using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace System.Data.Metadata.Edm { internal class SafeLinkwhere TParent : class { private TParent _value; public TParent Value { get { return _value; } } internal static IEnumerable BindChildren (TParent parent, Func > getLink, IEnumerable children) { foreach (TChild child in children) { BindChild(parent, getLink, child); } return children; } internal static TChild BindChild (TParent parent, Func > getLink, TChild child) { SafeLink link = getLink(child); Debug.Assert(link._value == null || link._value == parent, "don't try to hook up the same child to a different parent"); // this is the good stuff.. // only this method can actually make the link since _value is a private link._value = parent; return child; } } } // 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
- XmlJsonReader.cs
- ManualResetEvent.cs
- WebPartDisplayModeCollection.cs
- DataRowExtensions.cs
- InfoCardArgumentException.cs
- ParallelLoopState.cs
- CSharpCodeProvider.cs
- ComboBox.cs
- IsolatedStorage.cs
- SecureStringHasher.cs
- TraceSection.cs
- NullReferenceException.cs
- DATA_BLOB.cs
- SqlFacetAttribute.cs
- ContextStaticAttribute.cs
- ListSortDescriptionCollection.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- DetailsViewInsertEventArgs.cs
- ViewRendering.cs
- AliasedExpr.cs
- OracleCommandSet.cs
- AssemblyNameProxy.cs
- XmlILConstructAnalyzer.cs
- SafeNativeMemoryHandle.cs
- TextElementEnumerator.cs
- GroupByExpressionRewriter.cs
- GraphicsPathIterator.cs
- AsymmetricKeyExchangeDeformatter.cs
- GeneralTransform.cs
- TextEditorThreadLocalStore.cs
- Comparer.cs
- ButtonChrome.cs
- XmlSchemaSequence.cs
- FixedPageProcessor.cs
- BindingNavigatorDesigner.cs
- DataGridViewCellParsingEventArgs.cs
- UserUseLicenseDictionaryLoader.cs
- ToolStripItemImageRenderEventArgs.cs
- PointLight.cs
- DataGridViewToolTip.cs
- PageAsyncTask.cs
- EdmToObjectNamespaceMap.cs
- ScriptComponentDescriptor.cs
- AdornedElementPlaceholder.cs
- DbExpressionRules.cs
- XhtmlConformanceSection.cs
- WorkerRequest.cs
- PathFigureCollection.cs
- ConfigurationLocation.cs
- KeysConverter.cs
- Cursors.cs
- CharacterBufferReference.cs
- StyleXamlParser.cs
- ListDictionary.cs
- TransactionState.cs
- CompilationSection.cs
- ThumbButtonInfoCollection.cs
- BindableTemplateBuilder.cs
- DoubleStorage.cs
- SafeNativeMethods.cs
- ModelUIElement3D.cs
- OutputCacheModule.cs
- TimeSpan.cs
- BufferedMessageWriter.cs
- ListControlDesigner.cs
- CustomErrorCollection.cs
- DbConnectionPool.cs
- JournalNavigationScope.cs
- SessionStateModule.cs
- QueryContinueDragEventArgs.cs
- MethodBuilder.cs
- ISFTagAndGuidCache.cs
- CngKey.cs
- MachineKeyConverter.cs
- OpenTypeLayout.cs
- HtmlShim.cs
- fixedPageContentExtractor.cs
- DesignTimeVisibleAttribute.cs
- GenericRootAutomationPeer.cs
- CollectionAdapters.cs
- KnownTypeAttribute.cs
- XmlNamespaceManager.cs
- GeneralTransform3D.cs
- RestHandler.cs
- WindowsToolbarItemAsMenuItem.cs
- MultipleViewPattern.cs
- FrameworkTemplate.cs
- Padding.cs
- MailAddressCollection.cs
- FlowLayout.cs
- IssuanceLicense.cs
- MetadataItem.cs
- Transform.cs
- Tuple.cs
- FixedSOMTableCell.cs
- ControlParser.cs
- EntityDataSourceWrapper.cs
- MethodSet.cs
- SchemaMapping.cs
- ThreadStaticAttribute.cs