Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / RelationshipConverter.cs / 1 / RelationshipConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Globalization; sealed internal class RelationshipConverter : ExpandableObjectConverter { // converter classes should have public ctor public RelationshipConverter() { } ////// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ///Gets a value indicating whether this converter can /// convert an object to the given destination type using the context. ////// Converts the given object to another type. The most common types to convert /// are to and from a string object. The default implementation will make a call /// to ToString on the object if the object is valid and if the destination /// type is string. If this cannot convert to the desitnation type, this will /// throw a NotSupportedException. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } System.Reflection.ConstructorInfo ctor = null; object[] values = null; if (destinationType == typeof(InstanceDescriptor) && value is DataRelation) { DataRelation rel = (DataRelation) value; DataTable parentTable = rel.ParentKey.Table; DataTable childTable = rel.ChildKey.Table; if (System.Data.Common.ADP.IsEmpty(parentTable.Namespace) && System.Data.Common.ADP.IsEmpty(childTable.Namespace)) { ctor = typeof(DataRelation).GetConstructor(new Type[] { typeof(string) /*relationName*/, typeof(string) /*parentTableName*/, typeof(string) /*childTableName */, typeof(string[]) /*parentColumnNames */, typeof(string[]) /*childColumnNames*/, typeof(bool) /*nested*/ } ); values = new object[] { rel.RelationName, rel.ParentKey.Table.TableName, rel.ChildKey.Table.TableName,rel.ParentColumnNames, rel.ChildColumnNames, rel.Nested }; } else { ctor = typeof(DataRelation).GetConstructor(new Type[] { typeof(string)/*relationName*/, typeof(string)/*parentTableName*/, typeof(string)/*parentTableNamespace*/, typeof(string)/*childTableName */, typeof(string)/*childTableNamespace */, typeof(string[])/*parentColumnNames */, typeof(string[]) /*childColumnNames*/, typeof(bool) /*nested*/} ); values = new object[] { rel.RelationName, rel.ParentKey.Table.TableName, rel.ParentKey.Table.Namespace, rel.ChildKey.Table.TableName, rel.ChildKey.Table.Namespace, rel.ParentColumnNames, rel.ChildColumnNames, rel.Nested }; } return new InstanceDescriptor(ctor, values); } return base.ConvertTo(context, culture, value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GenericPrincipal.cs
- SwitchLevelAttribute.cs
- SecurityState.cs
- RawMouseInputReport.cs
- ScriptControlManager.cs
- GridViewUpdatedEventArgs.cs
- BindToObject.cs
- SoundPlayer.cs
- ReadOnlyHierarchicalDataSourceView.cs
- QueryParameter.cs
- LogArchiveSnapshot.cs
- FormatSettings.cs
- InfoCardKeyedHashAlgorithm.cs
- DbBuffer.cs
- MessageEncodingBindingElement.cs
- XmlElementList.cs
- TextEditorMouse.cs
- EventLogInternal.cs
- OneOfElement.cs
- SelectionListComponentEditor.cs
- Point4DConverter.cs
- ConstructorExpr.cs
- SamlAudienceRestrictionCondition.cs
- XmlWrappingReader.cs
- Effect.cs
- HttpCapabilitiesEvaluator.cs
- XslVisitor.cs
- ImageAnimator.cs
- DefaultAssemblyResolver.cs
- CodeAssignStatement.cs
- WindowsFormsDesignerOptionService.cs
- ScrollBarAutomationPeer.cs
- MdiWindowListItemConverter.cs
- EntityStoreSchemaGenerator.cs
- QilNode.cs
- CompiledXpathExpr.cs
- New.cs
- TypedRowGenerator.cs
- SplitterCancelEvent.cs
- PrintingPermission.cs
- StateManagedCollection.cs
- RenderOptions.cs
- PackageDigitalSignatureManager.cs
- ListViewUpdatedEventArgs.cs
- FrameSecurityDescriptor.cs
- InputBindingCollection.cs
- ScriptManagerProxy.cs
- ModelItemDictionaryImpl.cs
- NamespaceQuery.cs
- AssemblyName.cs
- GACMembershipCondition.cs
- ReadWriteSpinLock.cs
- SynchronousChannelMergeEnumerator.cs
- RetrieveVirtualItemEventArgs.cs
- IApplicationTrustManager.cs
- QueryOutputWriter.cs
- CodeTypeMemberCollection.cs
- XmlWhitespace.cs
- SHA256CryptoServiceProvider.cs
- ScrollChrome.cs
- RestHandlerFactory.cs
- ThreadTrace.cs
- WebPartHeaderCloseVerb.cs
- ListBoxItem.cs
- SqlCommandSet.cs
- ZipPackagePart.cs
- XPathSelectionIterator.cs
- SerializableAttribute.cs
- InputBinding.cs
- ImageMapEventArgs.cs
- SafeSecurityHandles.cs
- Stopwatch.cs
- XamlWriter.cs
- XPathSelectionIterator.cs
- TimelineClockCollection.cs
- ClientOptions.cs
- MatrixAnimationUsingKeyFrames.cs
- UserInitiatedNavigationPermission.cs
- TextEffectResolver.cs
- DecryptRequest.cs
- EnumValAlphaComparer.cs
- HandleExceptionArgs.cs
- PolyBezierSegment.cs
- NumberFunctions.cs
- DataGridTextColumn.cs
- EnumerableWrapperWeakToStrong.cs
- ResourceProperty.cs
- WebPartVerbsEventArgs.cs
- XmlDocument.cs
- CellNormalizer.cs
- WebPartHelpVerb.cs
- SafeCryptContextHandle.cs
- ClientProxyGenerator.cs
- XmlLoader.cs
- ImageCodecInfo.cs
- SelectionUIService.cs
- Parameter.cs
- RequestResizeEvent.cs
- AgileSafeNativeMemoryHandle.cs
- DataSourceXmlElementAttribute.cs