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
- TranslateTransform3D.cs
- IndependentAnimationStorage.cs
- HttpCacheParams.cs
- XPathBuilder.cs
- HttpServerVarsCollection.cs
- DiscoveryService.cs
- ToolBarButtonClickEvent.cs
- UserUseLicenseDictionaryLoader.cs
- CqlBlock.cs
- ObservableCollectionDefaultValueFactory.cs
- AsymmetricSecurityBindingElement.cs
- ValueHandle.cs
- OptimalTextSource.cs
- BaseCollection.cs
- TrackingServices.cs
- TextBox.cs
- ButtonBase.cs
- ProgressBarBrushConverter.cs
- OwnerDrawPropertyBag.cs
- NoResizeSelectionBorderGlyph.cs
- CompleteWizardStep.cs
- HandledEventArgs.cs
- SQLBinaryStorage.cs
- FormsIdentity.cs
- GeometryHitTestResult.cs
- ObjectQuery.cs
- StagingAreaInputItem.cs
- DbConvert.cs
- SmiRequestExecutor.cs
- XmlQueryType.cs
- TransactionScopeDesigner.cs
- categoryentry.cs
- RoutedEventValueSerializer.cs
- followingsibling.cs
- XsdBuildProvider.cs
- RegisteredExpandoAttribute.cs
- WsdlHelpGeneratorElement.cs
- OdbcErrorCollection.cs
- SecurityDocument.cs
- PropertyGridView.cs
- Repeater.cs
- diagnosticsswitches.cs
- CacheMode.cs
- AccessorTable.cs
- DataGridView.cs
- OleDbDataReader.cs
- BamlLocalizableResource.cs
- ButtonFlatAdapter.cs
- InkCollectionBehavior.cs
- FormsAuthentication.cs
- SystemDiagnosticsSection.cs
- FixedElement.cs
- ConfigXmlText.cs
- FormsAuthenticationModule.cs
- SourceLocationProvider.cs
- _DomainName.cs
- VariableExpressionConverter.cs
- DrawingVisualDrawingContext.cs
- ListBindableAttribute.cs
- ResourceProviderFactory.cs
- DataBinder.cs
- TreeView.cs
- ReferentialConstraint.cs
- DocumentOrderComparer.cs
- UnsafeNativeMethods.cs
- EventLogPermissionAttribute.cs
- UrlMappingsModule.cs
- SelectionGlyph.cs
- MobileUserControl.cs
- SafeThreadHandle.cs
- InstalledFontCollection.cs
- ConfigXmlAttribute.cs
- StdValidatorsAndConverters.cs
- StringUtil.cs
- DataGridViewControlCollection.cs
- SoapFaultCodes.cs
- TextDecoration.cs
- _SpnDictionary.cs
- FileDataSourceCache.cs
- OleDbReferenceCollection.cs
- EntityDataReader.cs
- NumberSubstitution.cs
- TextBoxBase.cs
- XmlSchemaValidationException.cs
- EdmSchemaAttribute.cs
- SqlCacheDependencyDatabaseCollection.cs
- BindStream.cs
- ParenthesizePropertyNameAttribute.cs
- ProxyElement.cs
- ServiceModelTimeSpanValidator.cs
- DeviceContexts.cs
- ThreadAttributes.cs
- ObjectView.cs
- odbcmetadatacollectionnames.cs
- CompileXomlTask.cs
- TraceProvider.cs
- ScrollBarRenderer.cs
- TypeKeyValue.cs
- IntSecurity.cs
- X509SecurityTokenProvider.cs