Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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. // //[....] //[....] //[....] //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PnrpPeerResolverBindingElement.cs
- ReadOnlyNameValueCollection.cs
- ExpressionPrinter.cs
- CheckedListBox.cs
- EditorPartChrome.cs
- TypeValidationEventArgs.cs
- DataRowExtensions.cs
- PackageDigitalSignatureManager.cs
- CollectionView.cs
- ForceCopyBuildProvider.cs
- SchemaNotation.cs
- SqlTransaction.cs
- ProfileGroupSettings.cs
- WinFormsSecurity.cs
- SchemaDeclBase.cs
- PlainXmlSerializer.cs
- TypeTypeConverter.cs
- OleDbMetaDataFactory.cs
- PointAnimationUsingPath.cs
- CheckBoxList.cs
- BaseDataBoundControlDesigner.cs
- FontStretches.cs
- SetIterators.cs
- FixedPosition.cs
- SemanticBasicElement.cs
- ReadOnlyHierarchicalDataSource.cs
- Parser.cs
- EmissiveMaterial.cs
- StylusDownEventArgs.cs
- sqlmetadatafactory.cs
- KeySplineConverter.cs
- TreeNodeEventArgs.cs
- WebConfigurationFileMap.cs
- ResourceExpressionEditorSheet.cs
- TransactionProtocol.cs
- ChannelDispatcherBase.cs
- HttpRuntimeSection.cs
- CodePageUtils.cs
- WebException.cs
- DesigntimeLicenseContext.cs
- DataBoundControlParameterTarget.cs
- PromptBuilder.cs
- SiteMap.cs
- ByteAnimationBase.cs
- CriticalFinalizerObject.cs
- Function.cs
- EnvelopedPkcs7.cs
- DataPagerFieldCommandEventArgs.cs
- DataBinding.cs
- DataGridViewColumnTypeEditor.cs
- BaseDataList.cs
- ConvertersCollection.cs
- GrammarBuilder.cs
- LongSumAggregationOperator.cs
- Base64WriteStateInfo.cs
- Vector3D.cs
- ListManagerBindingsCollection.cs
- ElementFactory.cs
- Code.cs
- WinEventWrap.cs
- HtmlGenericControl.cs
- DesignTimeParseData.cs
- PropertyConverter.cs
- XmlEnumAttribute.cs
- Matrix3D.cs
- TableLayoutColumnStyleCollection.cs
- InvalidAsynchronousStateException.cs
- ImpersonationContext.cs
- QueryOptionExpression.cs
- HyperLinkDataBindingHandler.cs
- PreservationFileReader.cs
- QuerySelectOp.cs
- BuilderInfo.cs
- DataObject.cs
- XmlWrappingReader.cs
- ContextMenuStripActionList.cs
- PointHitTestResult.cs
- AddDataControlFieldDialog.cs
- WinFormsComponentEditor.cs
- TraceXPathNavigator.cs
- TransformedBitmap.cs
- MouseGestureConverter.cs
- DataGridRow.cs
- RegexBoyerMoore.cs
- WebDescriptionAttribute.cs
- MissingSatelliteAssemblyException.cs
- FilteredXmlReader.cs
- figurelength.cs
- ColumnWidthChangingEvent.cs
- TextDocumentView.cs
- X509CertificateValidator.cs
- WindowsEditBox.cs
- ConnectionStringSettingsCollection.cs
- IdnElement.cs
- RSACryptoServiceProvider.cs
- SiteMapSection.cs
- RelationshipWrapper.cs
- WebServiceMethodData.cs
- ListSourceHelper.cs
- ChildTable.cs