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
- ClientType.cs
- NameTable.cs
- DataGridViewRowHeaderCell.cs
- SolidColorBrush.cs
- ConnectionPoint.cs
- RawStylusInputCustomDataList.cs
- XslAstAnalyzer.cs
- LicenseManager.cs
- BooleanToVisibilityConverter.cs
- ObjectDataSource.cs
- Debug.cs
- LicenseProviderAttribute.cs
- UnicodeEncoding.cs
- SerTrace.cs
- EDesignUtil.cs
- IdentityHolder.cs
- TextDecorations.cs
- TransportConfigurationTypeElement.cs
- ItemType.cs
- ValueQuery.cs
- CodeLabeledStatement.cs
- SimpleHandlerBuildProvider.cs
- TableCell.cs
- TemplateColumn.cs
- CodeNamespace.cs
- Literal.cs
- MdiWindowListItemConverter.cs
- HttpApplication.cs
- InitializationEventAttribute.cs
- COM2ColorConverter.cs
- SqlDataSourceCustomCommandPanel.cs
- _SslStream.cs
- Model3D.cs
- ListControlActionList.cs
- StrongNameUtility.cs
- Selector.cs
- XmlEntity.cs
- Convert.cs
- Helpers.cs
- AssertHelper.cs
- PerformanceCounterManager.cs
- ListComponentEditor.cs
- WebPartVerbCollection.cs
- HMACRIPEMD160.cs
- ApplicationSettingsBase.cs
- Parser.cs
- Function.cs
- TransformValueSerializer.cs
- LayoutEvent.cs
- RelationshipType.cs
- COAUTHINFO.cs
- WebServiceHandler.cs
- Oid.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- SQLStringStorage.cs
- DebugView.cs
- ColorConvertedBitmap.cs
- FillRuleValidation.cs
- ClockController.cs
- CommonEndpointBehaviorElement.cs
- SemanticKeyElement.cs
- ListenerElementsCollection.cs
- MenuItem.cs
- EncryptedKey.cs
- ConfigurationLocation.cs
- LinearGradientBrush.cs
- XhtmlBasicValidationSummaryAdapter.cs
- EntityModelBuildProvider.cs
- InternalConfigConfigurationFactory.cs
- MeshGeometry3D.cs
- StatusBarDrawItemEvent.cs
- SignedPkcs7.cs
- SqlAliasesReferenced.cs
- RepeatBehaviorConverter.cs
- MarkerProperties.cs
- StrokeNodeOperations2.cs
- ShapingWorkspace.cs
- XmlNodeList.cs
- VirtualPathUtility.cs
- MetadataPropertyCollection.cs
- TreeIterator.cs
- GridItemCollection.cs
- LinqDataSourceUpdateEventArgs.cs
- XmlSecureResolver.cs
- BrowserDefinition.cs
- XmlFormatExtensionPointAttribute.cs
- BlockUIContainer.cs
- CacheMemory.cs
- XmlObjectSerializerWriteContextComplex.cs
- ReadOnlyPropertyMetadata.cs
- OleDbConnectionInternal.cs
- LinqTreeNodeEvaluator.cs
- XmlDeclaration.cs
- WindowAutomationPeer.cs
- LoadedOrUnloadedOperation.cs
- ToolboxControl.cs
- SqlResolver.cs
- DefaultProxySection.cs
- PageCache.cs
- BinaryHeap.cs