Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / System / Data / ConstraintConverter.cs / 1 / ConstraintConverter.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 ConstraintConverter : ExpandableObjectConverter {
// converter classes should have public ctor
public ConstraintConverter() {
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// 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");
}
if (destinationType == typeof(InstanceDescriptor) && value is Constraint) {
if (value is UniqueConstraint) {
UniqueConstraint constr = (UniqueConstraint)value;
System.Reflection.ConstructorInfo ctor = typeof(UniqueConstraint).GetConstructor(new Type[] { typeof(string), typeof(string[]), typeof(bool) } );
if (ctor != null)
return new InstanceDescriptor(ctor, new object[] { constr.ConstraintName, constr.ColumnNames, constr.IsPrimaryKey });
}
else {
ForeignKeyConstraint constr = (ForeignKeyConstraint)value;
System.Reflection.ConstructorInfo ctor = typeof(ForeignKeyConstraint).GetConstructor(new Type[] { typeof(string), typeof(string), typeof(string[]),
typeof(string[]), typeof(AcceptRejectRule), typeof(Rule), typeof(Rule) } );
if (ctor != null)
return new InstanceDescriptor(ctor, new object[] { constr.ConstraintName, constr.ParentKey.Table.TableName, constr.ParentColumnNames,
constr.ChildColumnNames, constr.AcceptRejectRule, constr.DeleteRule, constr.UpdateRule });
}
}
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 ConstraintConverter : ExpandableObjectConverter {
// converter classes should have public ctor
public ConstraintConverter() {
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// 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");
}
if (destinationType == typeof(InstanceDescriptor) && value is Constraint) {
if (value is UniqueConstraint) {
UniqueConstraint constr = (UniqueConstraint)value;
System.Reflection.ConstructorInfo ctor = typeof(UniqueConstraint).GetConstructor(new Type[] { typeof(string), typeof(string[]), typeof(bool) } );
if (ctor != null)
return new InstanceDescriptor(ctor, new object[] { constr.ConstraintName, constr.ColumnNames, constr.IsPrimaryKey });
}
else {
ForeignKeyConstraint constr = (ForeignKeyConstraint)value;
System.Reflection.ConstructorInfo ctor = typeof(ForeignKeyConstraint).GetConstructor(new Type[] { typeof(string), typeof(string), typeof(string[]),
typeof(string[]), typeof(AcceptRejectRule), typeof(Rule), typeof(Rule) } );
if (ctor != null)
return new InstanceDescriptor(ctor, new object[] { constr.ConstraintName, constr.ParentKey.Table.TableName, constr.ParentColumnNames,
constr.ChildColumnNames, constr.AcceptRejectRule, constr.DeleteRule, constr.UpdateRule });
}
}
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
- RemoteHelper.cs
- WebAdminConfigurationHelper.cs
- Point3DCollectionConverter.cs
- CssTextWriter.cs
- FlowDocumentPaginator.cs
- Internal.cs
- SystemMulticastIPAddressInformation.cs
- TextLineResult.cs
- ToolboxItemAttribute.cs
- UnsafeNativeMethods.cs
- XPathArrayIterator.cs
- SchemaObjectWriter.cs
- XmlSerializerNamespaces.cs
- ButtonColumn.cs
- InvokeGenerator.cs
- DataReaderContainer.cs
- XmlSerializationReader.cs
- EditorPart.cs
- WindowsGraphicsWrapper.cs
- X509Certificate.cs
- ListControl.cs
- ChannelTokenTypeConverter.cs
- CodeConditionStatement.cs
- PrimaryKeyTypeConverter.cs
- XmlNamespaceDeclarationsAttribute.cs
- BitmapFrame.cs
- _Semaphore.cs
- GiveFeedbackEvent.cs
- LeaseManager.cs
- Row.cs
- StringSorter.cs
- WebPartConnectionCollection.cs
- ExpressionWriter.cs
- GridErrorDlg.cs
- formatstringdialog.cs
- GenericTypeParameterConverter.cs
- ImageConverter.cs
- CompilerTypeWithParams.cs
- WorkflowStateRollbackService.cs
- PackagingUtilities.cs
- ListBoxChrome.cs
- ScopelessEnumAttribute.cs
- MonthCalendarDesigner.cs
- WorkflowItemPresenter.cs
- Figure.cs
- ReferenceSchema.cs
- InputReport.cs
- StorageEndPropertyMapping.cs
- FrameSecurityDescriptor.cs
- MethodCallConverter.cs
- SourceItem.cs
- ImageButton.cs
- SoapProtocolReflector.cs
- Environment.cs
- SqlMethodAttribute.cs
- HashCodeCombiner.cs
- ErrorTolerantObjectWriter.cs
- JavaScriptSerializer.cs
- DecimalAnimation.cs
- validationstate.cs
- SynchronizationFilter.cs
- CodeStatementCollection.cs
- EncryptedKey.cs
- FlowLayoutPanel.cs
- QueryCreatedEventArgs.cs
- SerializationEventsCache.cs
- RichTextBox.cs
- ToolStrip.cs
- ComAdminInterfaces.cs
- InvalidOleVariantTypeException.cs
- ObjectContextServiceProvider.cs
- X509Certificate2.cs
- MimeMultiPart.cs
- KeyFrames.cs
- CursorConverter.cs
- BooleanExpr.cs
- DataProviderNameConverter.cs
- TextCollapsingProperties.cs
- SqlCommand.cs
- BezierSegment.cs
- TypeHelpers.cs
- DocumentViewerConstants.cs
- ResourceExpressionEditor.cs
- TableLayoutStyle.cs
- Compilation.cs
- Compiler.cs
- InternalUserCancelledException.cs
- Debug.cs
- MessageHeaderException.cs
- CodeArrayCreateExpression.cs
- Model3DCollection.cs
- ExecutionEngineException.cs
- PictureBox.cs
- HttpContextServiceHost.cs
- JoinCqlBlock.cs
- SystemResourceKey.cs
- CharKeyFrameCollection.cs
- _TLSstream.cs
- CurrentChangingEventManager.cs
- NullEntityWrapper.cs