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
- TextHidden.cs
- MessageTransmitTraceRecord.cs
- SecurityPermission.cs
- Int32CollectionConverter.cs
- TreeNodeBinding.cs
- LineSegment.cs
- AVElementHelper.cs
- ModelItemDictionaryImpl.cs
- ContextMenuStrip.cs
- UntypedNullExpression.cs
- counter.cs
- HttpProfileBase.cs
- FocusManager.cs
- UIAgentMonitorHandle.cs
- Debugger.cs
- Range.cs
- X509CertificateRecipientClientCredential.cs
- IISMapPath.cs
- CommandTreeTypeHelper.cs
- TemplateControlCodeDomTreeGenerator.cs
- TextTreeTextNode.cs
- BaseCAMarshaler.cs
- ButtonColumn.cs
- DiscoveryDefaults.cs
- WindowsFormsSynchronizationContext.cs
- XmlMemberMapping.cs
- TrimSurroundingWhitespaceAttribute.cs
- ClientRuntimeConfig.cs
- SafeNativeMethods.cs
- StickyNoteHelper.cs
- StringExpressionSet.cs
- SessionStateItemCollection.cs
- FixedSOMPageElement.cs
- TextBoxAutoCompleteSourceConverter.cs
- VisualBasicHelper.cs
- SmiEventSink.cs
- CodeNamespaceCollection.cs
- ServiceMemoryGates.cs
- UmAlQuraCalendar.cs
- CellConstant.cs
- TrackPoint.cs
- PageTheme.cs
- Point.cs
- DoubleAnimationUsingPath.cs
- ElementMarkupObject.cs
- RijndaelCryptoServiceProvider.cs
- Atom10FormatterFactory.cs
- ComplexObject.cs
- DiscardableAttribute.cs
- DependencyPropertyKey.cs
- GeometryGroup.cs
- coordinator.cs
- XmlDataSourceView.cs
- DataGridViewImageColumn.cs
- LazyTextWriterCreator.cs
- ProfileEventArgs.cs
- util.cs
- AppAction.cs
- LogLogRecordEnumerator.cs
- PeerSecurityHelpers.cs
- CultureMapper.cs
- HtmlInputCheckBox.cs
- SafeCryptoHandles.cs
- mactripleDES.cs
- QueryResultOp.cs
- HealthMonitoringSection.cs
- Variant.cs
- SiteMapProvider.cs
- PropertyGridCommands.cs
- ModuleConfigurationInfo.cs
- ClientConvert.cs
- BufferAllocator.cs
- RedirectionProxy.cs
- SiteMapDataSource.cs
- FrameworkElementFactoryMarkupObject.cs
- DataServiceException.cs
- DesignSurface.cs
- Stack.cs
- PolyLineSegment.cs
- coordinatorfactory.cs
- ZipIOExtraFieldElement.cs
- StyleXamlTreeBuilder.cs
- References.cs
- RulePatternOps.cs
- TypeListConverter.cs
- SectionXmlInfo.cs
- ParameterElement.cs
- NetCodeGroup.cs
- ProbeRequestResponseAsyncResult.cs
- ImageList.cs
- ToolStripDropDownClosingEventArgs.cs
- FloaterParaClient.cs
- MenuItemStyle.cs
- TableRow.cs
- TouchesCapturedWithinProperty.cs
- MenuItemCollectionEditor.cs
- FieldValue.cs
- DataViewSettingCollection.cs
- ViewKeyConstraint.cs
- PenThreadWorker.cs