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
- MergeEnumerator.cs
- COM2FontConverter.cs
- CacheMemory.cs
- DataServiceKeyAttribute.cs
- QueryOutputWriter.cs
- OSFeature.cs
- MaterializeFromAtom.cs
- FontDriver.cs
- HtmlTitle.cs
- CustomExpression.cs
- XmlSecureResolver.cs
- MasterPageCodeDomTreeGenerator.cs
- SettingsAttributes.cs
- OciLobLocator.cs
- WebAdminConfigurationHelper.cs
- Random.cs
- IPPacketInformation.cs
- ReadOnlyDataSource.cs
- PageSettings.cs
- TreeIterator.cs
- CurrencyWrapper.cs
- ObjectStateEntryDbDataRecord.cs
- SimpleWorkerRequest.cs
- OAVariantLib.cs
- SqlOuterApplyReducer.cs
- ContourSegment.cs
- WebBrowserProgressChangedEventHandler.cs
- MexBindingBindingCollectionElement.cs
- VarRemapper.cs
- StrokeCollectionDefaultValueFactory.cs
- MultilineStringConverter.cs
- HttpWriter.cs
- KoreanCalendar.cs
- RangeEnumerable.cs
- Script.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ListViewDesigner.cs
- MatrixCamera.cs
- Helper.cs
- TypeSystem.cs
- SecurityChannelFaultConverter.cs
- CompilerErrorCollection.cs
- ToolBarTray.cs
- ComponentChangedEvent.cs
- WhitespaceSignificantCollectionAttribute.cs
- ConnectionStringSettings.cs
- Int64Converter.cs
- TextServicesCompartmentEventSink.cs
- ListBase.cs
- ScriptingSectionGroup.cs
- UnicodeEncoding.cs
- UnsafeNativeMethodsMilCoreApi.cs
- XPathSelectionIterator.cs
- FrameworkContentElement.cs
- GregorianCalendar.cs
- MarkupCompiler.cs
- CustomAttribute.cs
- InternalTransaction.cs
- ListManagerBindingsCollection.cs
- compensatingcollection.cs
- MediaContextNotificationWindow.cs
- DataGridLinkButton.cs
- DependencyPropertyConverter.cs
- InternalConfigSettingsFactory.cs
- ImageCodecInfoPrivate.cs
- XmlToDatasetMap.cs
- DataGridViewCheckBoxCell.cs
- QueueProcessor.cs
- FastEncoder.cs
- FloatSumAggregationOperator.cs
- SqlDelegatedTransaction.cs
- PixelShader.cs
- HuffmanTree.cs
- ChangeTracker.cs
- LicenseContext.cs
- ThousandthOfEmRealPoints.cs
- DocumentSequence.cs
- XmlNodeComparer.cs
- XmlQueryType.cs
- datacache.cs
- CryptoConfig.cs
- EventLogPermission.cs
- WorkflowHostingEndpoint.cs
- RequestCacheManager.cs
- InstanceCompleteException.cs
- DbBuffer.cs
- SmtpSection.cs
- GridLengthConverter.cs
- EntityAdapter.cs
- ResXFileRef.cs
- AsyncCallback.cs
- RootBrowserWindowAutomationPeer.cs
- HMAC.cs
- DisplayClaim.cs
- Bidi.cs
- GACIdentityPermission.cs
- GACMembershipCondition.cs
- Int16Animation.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- _NegoStream.cs