Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / ColumnTypeConverter.cs / 1 / ColumnTypeConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
/*
*/
namespace System.Data {
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Data.SqlTypes;
///
/// Provides a type
/// converter that can be used to populate a list box with available types.
///
internal sealed class ColumnTypeConverter : TypeConverter {
private static Type[] types = new Type[] {
typeof(Boolean),
typeof(Byte),
typeof(Byte[]),
typeof(Char),
typeof(DateTime),
typeof(Decimal),
typeof(Double),
typeof(Guid),
typeof(Int16),
typeof(Int32),
typeof(Int64),
typeof(object),
typeof(SByte),
typeof(Single),
typeof(string),
typeof(TimeSpan),
typeof(UInt16),
typeof(UInt32),
typeof(UInt64),
typeof(SqlInt16),
typeof(SqlInt32),
typeof(SqlInt64),
typeof(SqlDecimal),
typeof(SqlSingle),
typeof(SqlDouble),
typeof(SqlString),
typeof(SqlBoolean),
typeof(SqlBinary),
typeof(SqlByte),
typeof(SqlDateTime),
typeof(SqlGuid),
typeof(SqlMoney),
typeof(SqlBytes),
typeof(SqlChars),
typeof(SqlXml)
};
private StandardValuesCollection values;
// converter classes should have public ctor
public ColumnTypeConverter() {
}
///
/// 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 value object to the specified destination type.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(string)) {
if (value == null) {
return String.Empty;
}
else {
value.ToString();
}
}
if (value != null && destinationType == typeof(InstanceDescriptor)) {
Object newValue = value;
if (value is string) {
for (int i = 0; i < types.Length; i++) {
if (types[i].ToString().Equals(value))
newValue = types[i];
}
}
if (value is Type || value is string) {
System.Reflection.MethodInfo method = typeof(Type).GetMethod("GetType", new Type[] {typeof(string)}); // change done for security review
if (method != null) {
return new InstanceDescriptor(method, new object[] {((Type)newValue).AssemblyQualifiedName});
}
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertTo(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value != null && value.GetType() == typeof(string)) {
for (int i = 0; i < types.Length; i++) {
if (types[i].ToString().Equals(value))
return types[i];
}
return typeof(string);
}
return base.ConvertFrom(context, culture, value);
}
///
/// Gets a collection of standard values for the data type this validator is
/// designed for.
///
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
if (values == null) {
object[] objTypes;
if (types != null) {
objTypes = new object[types.Length];
Array.Copy(types, objTypes, types.Length);
}
else {
objTypes = null;
}
values = new StandardValuesCollection(objTypes);
}
return values;
}
///
/// Gets a value indicating whether the list of standard values returned from
/// is an exclusive list.
///
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return true;
}
///
/// Gets a value indicating whether this object supports a
/// standard set of values that can be picked from a list using the specified
/// context.
///
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return true;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
/*
*/
namespace System.Data {
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Data.SqlTypes;
///
/// Provides a type
/// converter that can be used to populate a list box with available types.
///
internal sealed class ColumnTypeConverter : TypeConverter {
private static Type[] types = new Type[] {
typeof(Boolean),
typeof(Byte),
typeof(Byte[]),
typeof(Char),
typeof(DateTime),
typeof(Decimal),
typeof(Double),
typeof(Guid),
typeof(Int16),
typeof(Int32),
typeof(Int64),
typeof(object),
typeof(SByte),
typeof(Single),
typeof(string),
typeof(TimeSpan),
typeof(UInt16),
typeof(UInt32),
typeof(UInt64),
typeof(SqlInt16),
typeof(SqlInt32),
typeof(SqlInt64),
typeof(SqlDecimal),
typeof(SqlSingle),
typeof(SqlDouble),
typeof(SqlString),
typeof(SqlBoolean),
typeof(SqlBinary),
typeof(SqlByte),
typeof(SqlDateTime),
typeof(SqlGuid),
typeof(SqlMoney),
typeof(SqlBytes),
typeof(SqlChars),
typeof(SqlXml)
};
private StandardValuesCollection values;
// converter classes should have public ctor
public ColumnTypeConverter() {
}
///
/// 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 value object to the specified destination type.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(string)) {
if (value == null) {
return String.Empty;
}
else {
value.ToString();
}
}
if (value != null && destinationType == typeof(InstanceDescriptor)) {
Object newValue = value;
if (value is string) {
for (int i = 0; i < types.Length; i++) {
if (types[i].ToString().Equals(value))
newValue = types[i];
}
}
if (value is Type || value is string) {
System.Reflection.MethodInfo method = typeof(Type).GetMethod("GetType", new Type[] {typeof(string)}); // change done for security review
if (method != null) {
return new InstanceDescriptor(method, new object[] {((Type)newValue).AssemblyQualifiedName});
}
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertTo(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value != null && value.GetType() == typeof(string)) {
for (int i = 0; i < types.Length; i++) {
if (types[i].ToString().Equals(value))
return types[i];
}
return typeof(string);
}
return base.ConvertFrom(context, culture, value);
}
///
/// Gets a collection of standard values for the data type this validator is
/// designed for.
///
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
if (values == null) {
object[] objTypes;
if (types != null) {
objTypes = new object[types.Length];
Array.Copy(types, objTypes, types.Length);
}
else {
objTypes = null;
}
values = new StandardValuesCollection(objTypes);
}
return values;
}
///
/// Gets a value indicating whether the list of standard values returned from
/// is an exclusive list.
///
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return true;
}
///
/// Gets a value indicating whether this object supports a
/// standard set of values that can be picked from a list using the specified
/// context.
///
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return true;
}
}
}
// 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
- RegexNode.cs
- MemoryFailPoint.cs
- RijndaelManagedTransform.cs
- FeatureSupport.cs
- CompilerGeneratedAttribute.cs
- AnonymousIdentificationModule.cs
- HttpCapabilitiesEvaluator.cs
- Rotation3DAnimationUsingKeyFrames.cs
- XmlEventCache.cs
- WebPartHeaderCloseVerb.cs
- QueueTransferProtocol.cs
- WeakReferenceEnumerator.cs
- PropertyNames.cs
- SqlException.cs
- RoutedEventHandlerInfo.cs
- State.cs
- XmlSchemaRedefine.cs
- DropTarget.cs
- UnionCqlBlock.cs
- BamlResourceContent.cs
- FocusTracker.cs
- Double.cs
- CellCreator.cs
- NopReturnReader.cs
- TextElement.cs
- SerializationSectionGroup.cs
- TreeViewEvent.cs
- pingexception.cs
- SelectionRangeConverter.cs
- PageBuildProvider.cs
- TreeViewImageIndexConverter.cs
- DesignOnlyAttribute.cs
- ScrollBar.cs
- ResourceSetExpression.cs
- SafeProcessHandle.cs
- GiveFeedbackEventArgs.cs
- Double.cs
- ListComponentEditorPage.cs
- Roles.cs
- EasingFunctionBase.cs
- FieldBuilder.cs
- ToolStripItem.cs
- UnsafeNativeMethods.cs
- XmlChoiceIdentifierAttribute.cs
- HttpModuleActionCollection.cs
- QilXmlWriter.cs
- CommandHelper.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ReferenceService.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DynamicDataExtensions.cs
- KerberosReceiverSecurityToken.cs
- RequestBringIntoViewEventArgs.cs
- ProcessProtocolHandler.cs
- RangeValuePattern.cs
- RepeaterItemEventArgs.cs
- Message.cs
- SoapIgnoreAttribute.cs
- ValuePattern.cs
- DllNotFoundException.cs
- FamilyTypefaceCollection.cs
- FlowDocumentPaginator.cs
- DependencySource.cs
- InstanceDescriptor.cs
- SafeTimerHandle.cs
- ContextDataSourceView.cs
- XmlSerializationWriter.cs
- PasswordTextContainer.cs
- InputScope.cs
- TextTreeDeleteContentUndoUnit.cs
- SoapFault.cs
- DynamicMethod.cs
- ScrollBarRenderer.cs
- SmiMetaData.cs
- Clipboard.cs
- QueryAccessibilityHelpEvent.cs
- DataGridViewHeaderCell.cs
- _MultipleConnectAsync.cs
- ContextInformation.cs
- ValidateNames.cs
- _NetworkingPerfCounters.cs
- ContentFilePart.cs
- PathParser.cs
- ComboBox.cs
- SliderAutomationPeer.cs
- FilterException.cs
- EntitySqlException.cs
- WebPartActionVerb.cs
- ReadOnlyTernaryTree.cs
- MemberAccessException.cs
- Single.cs
- WebHttpEndpointElement.cs
- SQLBytes.cs
- ConfigurationProperty.cs
- StyleCollection.cs
- Aggregates.cs
- XmlWrappingReader.cs
- CursorInteropHelper.cs
- TransactionManager.cs
- TextTrailingWordEllipsis.cs