Code:
/ DotNET / DotNET / 8.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
- HttpModulesSection.cs
- TreeNodeStyle.cs
- ConnectivityStatus.cs
- GCHandleCookieTable.cs
- PriorityItem.cs
- XmlSerializerSection.cs
- OpCopier.cs
- XmlStreamStore.cs
- DbParameterHelper.cs
- PackagePart.cs
- EntityDataSourceState.cs
- TextProviderWrapper.cs
- TableProviderWrapper.cs
- DataControlPagerLinkButton.cs
- FileReservationCollection.cs
- RectAnimationBase.cs
- BitmapEffectInput.cs
- PipeSecurity.cs
- AxWrapperGen.cs
- RowsCopiedEventArgs.cs
- SecurityPermission.cs
- documentsequencetextview.cs
- BulletedListEventArgs.cs
- ExtensionQuery.cs
- IPAddress.cs
- VisualStyleInformation.cs
- CallbackHandler.cs
- Stroke.cs
- XPathNavigatorKeyComparer.cs
- SecurityKeyIdentifierClause.cs
- CategoryList.cs
- VerificationException.cs
- SingleAnimationUsingKeyFrames.cs
- Transform.cs
- SessionState.cs
- FileDialogCustomPlacesCollection.cs
- DataGridCaption.cs
- CustomAssemblyResolver.cs
- VSWCFServiceContractGenerator.cs
- SelectionItemPattern.cs
- TextFormatter.cs
- SecurityTokenSerializer.cs
- RankException.cs
- InvokeGenerator.cs
- WinEventTracker.cs
- InvalidOperationException.cs
- DateTimeUtil.cs
- XmlChildNodes.cs
- GC.cs
- XmlSchemaAttribute.cs
- ExpressionHelper.cs
- PropertyManager.cs
- Point4D.cs
- ObservableDictionary.cs
- PngBitmapEncoder.cs
- ObfuscationAttribute.cs
- SamlNameIdentifierClaimResource.cs
- QuaternionValueSerializer.cs
- JoinGraph.cs
- WebPermission.cs
- VersionedStreamOwner.cs
- EntityRecordInfo.cs
- KnowledgeBase.cs
- TextOnlyOutput.cs
- ThreadLocal.cs
- EntitySqlQueryCacheKey.cs
- AssemblyBuilderData.cs
- HealthMonitoringSectionHelper.cs
- mediaeventshelper.cs
- AvtEvent.cs
- ExpandableObjectConverter.cs
- configsystem.cs
- PropertyMapper.cs
- Menu.cs
- LineGeometry.cs
- UnknownWrapper.cs
- HtmlTernaryTree.cs
- RijndaelManaged.cs
- CoTaskMemHandle.cs
- ClientConfigurationHost.cs
- XmlEncodedRawTextWriter.cs
- DockAndAnchorLayout.cs
- PathSegmentCollection.cs
- SerializationAttributes.cs
- DisplayClaim.cs
- FixedLineResult.cs
- InputBinder.cs
- TransformCollection.cs
- MetadataItemSerializer.cs
- InvalidAsynchronousStateException.cs
- VolatileEnlistmentMultiplexing.cs
- WindowsTooltip.cs
- BasicExpandProvider.cs
- RijndaelManaged.cs
- EntityDataSource.cs
- ReflectionUtil.cs
- MimeTypeMapper.cs
- SafeSystemMetrics.cs
- ReaderOutput.cs
- StorageSetMapping.cs